.. | ||
cookie-bomb.md | ||
cookie-jar-overflow.md | ||
cookie-tossing.md | ||
README.md |
कुकीज़ हैकिंग
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- क्या आप साइबर सुरक्षा कंपनी में काम करते हैं? क्या आप चाहते हैं कि आपकी कंपनी का विज्ञापन HackTricks में दिखाई दे? या क्या आप PEASS के नवीनतम संस्करण तक पहुँचना चाहते हैं या HackTricks को PDF में डाउनलोड करना चाहते हैं? सदस्यता योजनाओं की जाँच करें!
- The PEASS Family की खोज करें, हमारा विशेष NFTs संग्रह
- आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें
- 💬 Discord समूह में शामिल हों या telegram समूह में या Twitter पर मुझे फॉलो करें 🐦@carlospolopm.
- अपनी हैकिंग ट्रिक्स साझा करें, hacktricks repo और hacktricks-cloud repo में PRs सबमिट करके.
उन कमजोरियों को खोजें जो सबसे महत्वपूर्ण हैं ताकि आप उन्हें तेजी से ठीक कर सकें। Intruder आपकी हमले की सतह को ट्रैक करता है, सक्रिय खतरे के स्कैन चलाता है, और आपके पूरे तकनीकी स्टैक में मुद्दों को ढूंढता है, APIs से लेकर वेब ऐप्स और क्लाउड सिस्टम्स तक। आज ही मुफ्त में इसे आजमाएं।
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
कुकीज़ गुण
Expires & Max-Age
Expires
एक समाप्ति तिथि निर्धारित करता है जब एक कुकी मिटाई जाती हैMax-age
सेकंड में समय निर्धारित करता है जब एक कुकी मिटाई जाएगी (इसका उपयोग करें, अब 2009 नहीं है)
Domain
Domain
गुण निर्दिष्ट करता है कौन से होस्ट कुकी प्राप्त कर सकते हैं। यदि निर्दिष्ट नहीं किया गया है, तो गुण डिफ़ॉल्ट उसी होस्ट के लिए होता है जिसने कुकी सेट की, उपडोमेन्स को छोड़कर. यदि Domain
निर्दिष्ट है, तो उपडोमेन्स हमेशा शामिल किए जाते हैं। इसलिए, Domain
को निर्दिष्ट करना इसे छोड़ने से कम प्रतिबंधात्मक है। हालांकि, यह तब मददगार हो सकता है जब उपडोमेन्स को उपयोगकर्ता के बारे में जानकारी साझा करने की आवश्यकता हो।
उदाहरण के लिए, यदि आप Domain=mozilla.org
सेट करते हैं, तो कुकीज़ developer.mozilla.org
जैसे उपडोमेन्स पर उपलब्ध होती हैं। लेकिन यदि आप नहीं करते हैं, तो कुकी उपडोमेन्स को नहीं भेजी जाएगी।
यदि एक उपडोमेन sub.example.com
एक कुकी सेट करता है डोमेन गुण के साथ .example.com
, यह भेजा जाएगा मूल डोमेन के लिए अनुरोधों पर।
Path
Path
गुण एक URL पथ को इंगित करता है जो अनुरोधित URL में मौजूद होना चाहिए ताकि Cookie
हेडर भेजा जा सके। %x2F
("/") अक्षर को एक निर्देशिका विभाजक माना जाता है, और उपनिर्देशिकाएँ भी मेल खाती हैं।
क्रम
जब 2 कुकीज़ का समान नाम होता है तो भेजी जाने वाली वह होती है:
- वह जिसका URL पथ से मेल खाने वाला पथ सबसे लंबा हो
- यदि दोनों का पथ समान हो तो नवीनतम वाली
SameSite
यह ब्राउज़र को इंगित करेगा कि क्या कुकी को अन्य डोमेन्स से भेजा जा सकता है। इसके 3 संभावित मूल्य हैं:
- Strict: कुकी तृतीय पक्ष की वेबसाइटों द्वारा एक अनुरोध के साथ नहीं भेजी जाएगी।
- Lax: कुकी तृतीय पक्ष की वेबसाइटों द्वारा प्रारंभ किए गए GET अनुरोध के साथ भेजी जाएगी।
- None: कुकी किसी भी तृतीय पक्ष डोमेन से भेजी जाती है
अनुरोध प्रकार | उदाहरण कोड | कुकीज़ भेजी जाती हैं जब |
---|---|---|
लिंक | <a href="..."></a> | NotSet*, Lax, None |
प्रीरेंडर | <link rel="prerender" href=".."/> | NotSet*, Lax, None |
फॉर्म GET | <form method="GET" action="..."> | NotSet*, Lax, None |
फॉर्म POST | <form method="POST" action="..."> | NotSet*, None |
iframe | <iframe src="..."></iframe> | NotSet*, None |
AJAX | $.get("...") | NotSet*, None |
इमेज | <img src="..."> | NetSet*, None |
Invicti से ली गई तालिका और थोड़ा संशोधित।
SameSite गुण वाली कुकी CSRF हमलों को कम करेगी जहाँ एक लॉग इन सत्र की आवश्यकता होती है।
*ध्यान दें कि Chrome80 (फ़रवरी/2019) से बिना कुकी samesite गुण वाली कुकी का डिफ़ॉल्ट व्यवहार lax होगा (https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/).
ध्यान दें कि इस परिवर्तन को लागू करने के बाद, अस्थायी रूप से, बिना SameSite नीति वाली कुकीज़ Chrome में पहले 2 मिनट के लिए None के रूप में और फिर शीर्ष-स्तरीय क्रॉस-साइट POST अनुरोध के लिए Lax के रूप में मानी जाएगी।
कुकीज़ फ्लैग्स
HttpOnly
यह क्लाइंट को कुकी तक पहुँचने से रोकता है (उदाहरण के लिए Javascript के माध्यम से: document.cookie
)
बाईपास
- यदि पेज कुकीज़ को एक अनुरोध के जवाब में भेज रहा है (उदाहरण के लिए PHPinfo पेज में), तो XSS का दुरुपयोग करके इस पेज पर एक अनुरोध भेजकर जवाब से कुकीज़ चुराना संभव है (एक उदाहरण देखें https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/).
- इसे TRACE HTTP अनुरोधों के साथ बाईपास किया जा सकता है क्योंकि सर्वर से प्रतिक्रिया में कुकीज़ को प्रतिबिंबित किया जाएगा। इस तकनीक को Cross-Site Tracking कहा जाता है।
- आधुनिक ब्राउज़र इस तकनीक को रोकते हैं जो JS से TRACE अनुरोध भेजने की अनुमति नहीं देते। हालांकि, विशिष्ट सॉफ्टवेयर में इसके कुछ बाईपास पाए गए हैं, जैसे कि IE6.0 SP2 को
TRACE
के बजाय\r\nTRACE
भेजना। - एक और तरीका ब्राउज़रों की शून्य/दिन की कमजोरियों का शोषण है।
- HttpOnly कुकीज़ को ओवरराइट करना संभव है, जिसके लिए Cookie Jar ओवरफ्लो हमले का प्रदर्शन किया जाता है:
{% content-ref url="cookie-jar-overflow.md" %} cookie-jar-overflow.md {% endcontent-ref %}
- Cookie Smuggling हमले का उपयोग करके इन कुकीज़ को बाहर निकालना संभव है।
Secure
अनुरोध केवल तब कुकी भेजेगा जब HTTP अनुरोध एक सुरक्षित चैनल (आमतौर पर HTTPS) के माध्यम से प्रेषित होता है।
कुकीज़ प्रीफिक्सेस
__Secure-
प्रीफिक्स: इसे एक सुरक्षित पेज (HTTPS) से secure
फ्लैग के साथ सेट किया जाना चाहिए।
__Host-
प्रीफिक्स: इसे secure
फ्लैग के साथ सेट किया जाना चाहिए, एक सुरक्षित पेज (HTTPS) से होना चाहिए, डोमेन निर्दिष्ट नहीं होना चाहिए (और इसलिए, उपडोमेन्स को नहीं भेजा जाता है), और पथ /
होना चाहिए।
__Host-
प्रीफिक्स वाली कुकीज़ सुपरडोमेन्स (उपडोमेन्स से डोमेन्स को कुकीज़) या उपडोमेन्स (डोमेन्स से उपडोमेन्स को कुकीज़) को नहीं भेजी जा सकती हैं, इसलिए, यदि आप अपने एप्लिकेशन कुकीज़ को अलग करना चाहते हैं, तो सब कुछ __Host-
के साथ प्रीफिक्स करना बुरा विचार नहीं है।
कुकीज़ हमले
यदि आपको किसी प्रकार की कस्टम कुकी मिलती है जिसमें संवेदनशील डेटा होता है (sessionID, उपयोगकर्ता नाम, ईमेल, आदि) तो आपको निश्चित रूप से इसका शोषण करने की कोशिश करनी चाहिए।
कुकी को डिकोड करना
यदि कुकी किसी Base encoding (जैसे Base64) या इसी तरह का उपयोग कर रही है, तो आप इसे डिकोड कर सकते हैं, सामग्री बदल सकते हैं और मनमाने उपयोगकर्ताओं का अनुकरण कर सकते हैं।
सेशन हाइजैकिंग
एक कुकी चुराएं और इसका उपयोग एप्लिकेशन के अंदर उपयोगकर्ता का अनुकरण करने के लिए करें।
सेशन फिक्सेशन
हमलावर एक वेब पेज से कुकी प्राप्त करता है और पीड़ित को एक लिंक भेजता है ताकि वह उसी कुकी का उपयोग करके लॉगिन करे। यदि उपयोगकर्ता लॉग इन होने पर कुकी नहीं बदली जाती है, तो यह उपयोगी हो सकता है क्योंकि हमलावर कुकी के माध्यम से उपयोगकर्ता का अनुकरण करने में सक्षम हो सकता है।
यदि आपने एक XSS उपडोमेन में पाया है या आप एक उपडोमेन को नियंत्रित करते हैं, पढ़ें:
{% content-ref url="cookie-tossing.md" %} cookie-tossing.md {% endcontent-ref %}
सेशन दान
हमलावर अपना सेशन पीड़ित को भेजता है। पीड़ित देखेगा कि वह पहले से ही लॉग इन है और मान लेगा कि वह अपने खाते के अंदर है लेकिन क्रियाएँ हमलावर के खाते के अंदर की जाएंगी।
यदि आपने एक XSS उपडोमेन में पाया है या आप एक उपडोमेन को नियंत्रित करते हैं, पढ़ें:
{% content-ref url="cookie-tossing.md" %} cookie-tossing.md {% endcontent-ref %}
JWT कुकी
संभावित दोषों की व्याख्या करने वाले पेज तक पहुँचने के लिए पिछले लिंक पर क्लिक करें।
खाली कुकी
ब्राउज़र एक खाली नाम के साथ कुकी की अनुमति देते हैं
document.cookie = "a=v1"
document.cookie = "=test value;" // empty name
document.cookie = "b=v2"
इससे भेजा गया कुकी हेडर होता है:
a=v1; test value; b=v2;
और दिलचस्प बात यह है कि अगर आपके पास कोई ऐसा वेक्टर है जो आपको खाली कुकी सेट करने की अनुमति देता है, तो आप किसी भी अन्य कुकी को नियंत्रित कर सकते हैं:
function setCookie(name, value) {
document.cookie = `${name}=${value}`;
}
setCookie("", "a=b"); // this sets the empty cookie to a=b
हालांकि ब्राउज़र के अंदर यह खाली नाम वाले कुकी के रूप में सेट किया जाता है, इससे भेजा गया कुकी हेडर: का परिणाम होगा:
a=b;
Chrome Bug - document.cookie भ्रष्टाचार
यदि किसी सेट कुकी में यूनिकोड सरोगेट कोडपॉइंट होता है, तो document.cookie
स्थायी रूप से भ्रष्ट हो जाएगा और एक खाली स्ट्रिंग लौटाएगा।
document.cookie
// "a=b;"
document.cookie = "\ud800=meep";
document.cookie
// ""
कुकी स्मगलिंग
कई वेबसर्वर, जिनमें जावा वेबसर्वर Jetty, TomCat, Undertow, और पायथन वेब फ्रेमवर्क Zope, साथ ही पायथन वेब सर्वर/फ्रेमवर्क्स जैसे कि cherrypy, web.py, aiohttp server, bottle, और webob, कुकी स्ट्रिंग्स को गलत तरीके से पार्स करने के लिए पाए गए हैं क्योंकि वे RFC2965 के लिए बचे हुए समर्थन के कारण, जो कि एक पुरानी कुकी कोटिंग मैकेनिज्म है जो कि RFC2616 का उपयोग करता है एक quoted-string परिभाषा के लिए।
विशेष रूप से, ये सर्वर एक कुकी स्ट्रिंग को पढ़ना जारी रखते हैं जब वे एक डबल-कोटेड (dquoted) कुकी मूल्य का सामना करते हैं, भले ही एक सेमीकोलन का सामना किया जाए। यह समस्याग्रस्त है क्योंकि सेमीकोलन का उपयोग कुकी स्ट्रिंग में की-वैल्यू जोड़ों को अलग करने के लिए किया जाना चाहिए।
उदाहरण के लिए, अगर एक ब्राउज़र तीन कुकीज़ भेजता है, RENDER_TEXT, JSESSIONID, और ASDF:
RENDER_TEXT="hello world; JSESSIONID=13371337; ASDF=end";
ये सर्वर उन्हें एकल कुकी मूल्य के रूप में मानते हैं, न कि तीन अलग-अलग कुकीज़ के रूप में।
इससे एक सुरक्षा जोखिम उत्पन्न होता है: यदि हमलावर को क्रॉस-साइट स्क्रिप्टिंग (XSS) तक पहुँच मिल जाती है, तो वे इस बग का उपयोग HttpOnly कुकीज़ जैसे संवेदनशील कुकीज़ को बाहर निकालने के लिए कर सकते हैं।
कुकी इंजेक्शन
बहुत से वेबसर्वर, जिनमें Java का Undertow, Python का Zope, और वे जो Python के stdlib http.cookie.SimpleCookie और http.cookie.BaseCookie का उपयोग करते हैं, कुकीज़ को गलत तरीके से पार्स करने के लिए पाए गए हैं, गलत डिलिमिटर्स का उपयोग करके अगले कुकी नाम/मूल्य जोड़ी को शुरू करने के लिए। इससे हमलावर को एक कुकी मूल्य को नियंत्रित करते हुए कई कुकीज़ को नकली बनाने की अनुमति मिलती है।
Undertow के मामले में, यह अगली कुकी को पार्स करना शुरू कर देता है तुरंत उद्धृत कुकी मूल्य के अंत के बाद, बिना सेमीकोलन का इंतजार किए:
LANGUAGE="en-us" CSRF_TOKEN="SPOOFED_VALUE"
Zope अगले कुकी को पार्स करना कॉमा पर शुरू करता है:
LANGUAGE=en-us,CSRF_TOKEN=SPOOFED_VALUE
और Python's SimpleCookie और BaseCookie तुरंत अगले कुकी को पार्स करना शुरू कर देते हैं space अक्षर पर:
LANGUAGE=en-us CSRF_TOKEN=SPOOFED_VALUE
नतीजतन, cherrypy, web.py, aiohttp सर्वर, bottle, और webob (Pyramid, TurboGears) इस प्रकार के हमले के लिए सभी संवेदनशील हैं।
इस मुद्दे का महत्वपूर्ण सुरक्षा प्रभाव है। उदाहरण के लिए, यदि एक वेब एप्लिकेशन cookie-based CSRF सुरक्षा का उपयोग करता है, तो एक हमलावर CSRF-token cookie का नकली संस्करण इंजेक्ट करके इस सुरक्षा को बायपास कर सकता है। इसके अलावा, Python के http.cookie पैकेज में अंतिम डुप्लिकेट cookie नाम पिछले सभी को ओवरराइड कर देता है, जिससे इस प्रकार का हमला विशेष रूप से आसान हो जाता है।
इसके अलावा, __Secure-
और __Host-
cookies की स्पूफिंग का दुरुपयोग एक असुरक्षित संदर्भ में किया जा सकता है। साथ ही, एक ऐसे कॉन्फ़िगरेशन में जहां cookies को एक बैकएंड सर्वर पर पास किया जाता है, cookie इंजेक्शन से प्राधिकरण बायपास हो सकता है यदि बैकएंड सर्वर स्पूफिंग के लिए संवेदनशील है लेकिन फ्रंटएंड सर्वर नहीं है।
अतिरिक्त संवेदनशील Cookies जांच
मूल जांच
- cookie हर बार जब आप लॉगिन करते हैं तो समान होती है।
- लॉग आउट करें और समान cookie का उपयोग करने की कोशिश करें।
- एक ही खाते में 2 उपकरणों (या ब्राउज़रों) के साथ समान cookie का उपयोग करके लॉगिन करने की कोशिश करें।
- जांचें कि cookie में कोई जानकारी है और उसे संशोधित करने की कोशिश करें।
- लगभग समान उपयोगकर्ता नाम के साथ कई खाते बनाने की कोशिश करें और जांचें कि क्या आप समानताएं देख सकते हैं।
- "मुझे याद रखें" विकल्प की जांच करें यदि वह मौजूद है तो देखें कि यह कैसे काम करता है। यदि यह मौजूद है और संवेदनशील हो सकता है, तो हमेशा किसी अन्य cookie के बिना मुझे याद रखें की cookie का उपयोग करें।
- जांचें कि क्या पिछली cookie पासवर्ड बदलने के बाद भी काम करती है।
उन्नत cookies हमले
यदि cookie लॉगिन करते समय समान (या लगभग) रहती है, तो इसका मतलब शायद यह है कि cookie आपके खाते के किसी फ़ील्ड (शायद उपयोगकर्ता नाम) से संबंधित है। तब आप:
- बहुत सारे खाते बनाने की कोशिश करें जिनके उपयोगकर्ता नाम बहुत समान हों और अनुमान लगाने की कोशिश करें कि एल्गोरिथम कैसे काम कर रहा है।
- उपयोगकर्ता नाम को ब्रूटफोर्स करने की कोशिश करें। यदि cookie केवल आपके उपयोगकर्ता नाम के लिए एक प्रमाणीकरण विधि के रूप में सहेजती है, तो आप "Bmin" उपयोगकर्ता नाम के साथ एक खाता बना सकते हैं और अपनी cookie के हर एक बिट को ब्रूटफोर्स कर सकते हैं क्योंकि आपके द्वारा आजमाई गई cookies में से एक "admin" की होगी।
- Padding Oracle की कोशिश करें (आप cookie की सामग्री को डिक्रिप्ट कर सकते हैं)। padbuster का उपयोग करें।
Padding Oracle - Padbuster उदाहरण
padbuster <URL/path/when/successfully/login/with/cookie> <COOKIE> <PAD[8-16]>
# When cookies and regular Base64
padbuster http://web.com/index.php u7bvLewln6PJPSAbMb5pFfnCHSEd6olf 8 -cookies auth=u7bvLewln6PJPSAbMb5pFfnCHSEd6olf
# If Base64 urlsafe or hex-lowercase or hex-uppercase --encoding parameter is needed, for example:
padBuster http://web.com/home.jsp?UID=7B216A634951170FF851D6CC68FC9537858795A28ED4AAC6
7B216A634951170FF851D6CC68FC9537858795A28ED4AAC6 8 -encoding 2
Padbuster कई प्रयास करेगा और आपसे पूछेगा कि कौन सी स्थिति त्रुटि की स्थिति है (वह जो मान्य नहीं है)।
फिर यह कुकी को डिक्रिप्ट करना शुरू कर देगा (इसमें कई मिनट लग सकते हैं)
यदि हमला सफलतापूर्वक किया गया है, तो आप अपनी पसंद की एक स्ट्रिंग को encrypt करने का प्रयास कर सकते हैं। उदाहरण के लिए, यदि आप user=administrator को encrypt करना चाहते हैं
padbuster http://web.com/index.php 1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lBP+zAD0D0w== 8 -cookies thecookie=1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lBP+zAD0D0w== -plaintext user=administrator
यह निष्पादन आपको सही तरीके से एन्क्रिप्टेड और एन्कोडेड कुकी देगा जिसमें **user=administrator** स्ट्रिंग शामिल है।
**CBC-MAC**
शायद किसी कुकी में कोई मूल्य हो सकता है और इसे CBC का उपयोग करके हस्ताक्षरित किया जा सकता है। फिर, मूल्य की अखंडता CBC का उपयोग करके बनाई गई हस्ताक्षर होती है। चूंकि IV के रूप में एक शून्य वेक्टर का उपयोग करने की सिफारिश की जाती है, इस प्रकार की अखंडता जांच संवेदनशील हो सकती है।
**हमला**
1. उपयोगकर्ता नाम **administ** का हस्ताक्षर प्राप्त करें = **t**
2. उपयोगकर्ता नाम **rator\x00\x00\x00 XOR t** का हस्ताक्षर प्राप्त करें = **t'**
3. कुकी में मूल्य **administrator+t'** सेट करें (**t'** **(rator\x00\x00\x00 XOR t) XOR t** = **rator\x00\x00\x00** का वैध हस्ताक्षर होगा)
**ECB**
यदि कुकी को ECB का उपयोग करके एन्क्रिप्ट किया गया है तो यह संवेदनशील हो सकता है।\
जब आप लॉग इन करते हैं तो आपको प्राप्त होने वाली कुकी हमेशा समान होनी चाहिए।
**पता लगाने और हमला करने का तरीका:**
लगभग समान डेटा (उपयोगकर्ता नाम, पासवर्ड, ईमेल, आदि) वाले 2 उपयोगकर्ताओं को बनाएं और दिए गए कुकी में किसी पैटर्न की खोज करने का प्रयास करें
उदाहरण के लिए "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" नामक एक उपयोगकर्ता बनाएं और जांचें कि कुकी में कोई पैटर्न है या नहीं (क्योंकि ECB हर ब्लॉक को समान कुंजी से एन्क्रिप्ट करता है, यदि उपयोगकर्ता नाम एन्क्रिप्ट किया गया है तो समान एन्क्रिप्टेड बाइट्स प्रकट हो सकते हैं)।
एक पैटर्न होना चाहिए (उपयोग किए गए ब्लॉक के आकार के साथ)। तो, जानते हुए कि "a" का एक समूह कैसे एन्क्रिप्ट किया गया है, आप एक उपयोगकर्ता नाम बना सकते हैं: "a"\*(ब्लॉक का आकार)+"admin"। फिर, आप कुकी से "a" के एक ब्लॉक के एन्क्रिप्टेड पैटर्न को हटा सकते हैं। और आपके पास उपयोगकर्ता नाम "admin" की कुकी होगी।
## संदर्भ
* [https://blog.ankursundara.com/cookie-bugs/](https://blog.ankursundara.com/cookie-bugs/)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
सबसे महत्वपूर्ण संवेदनशीलताओं को खोजें ताकि आप उन्हें तेजी से ठीक कर सकें। Intruder आपकी हमले की सतह को ट्रैक करता है, सक्रिय खतरे के स्कैन चलाता है, आपके पूरे तकनीकी स्टैक में मुद्दों को खोजता है, APIs से लेकर वेब ऐप्स और क्लाउड सिस्टम्स तक। आज ही [**मुफ्त में आजमाएं**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)।
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं**? या क्या आप **PEASS के नवीनतम संस्करण तक पहुंच चाहते हैं या HackTricks को PDF में डाउनलोड करना चाहते हैं**? [**सदस्यता योजनाओं**](https://github.com/sponsors/carlospolop) की जांच करें!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram समूह**](https://t.me/peass) में या **Twitter** पर मुझे **फॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **hacktricks repo** में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें और [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
</details>