Translated ['macos-hardening/macos-security-and-privilege-escalation/mac

This commit is contained in:
Translator 2024-09-06 12:52:13 +00:00
parent 4d35431c69
commit 2e33d0c048

View file

@ -1,26 +1,26 @@
# macOS संवेदनशील स्थान और दिलचस्प डेमन्स # macOS संवेदनशील स्थान और दिलचस्प डेमन
{% hint style="success" %} {% hint style="success" %}
AWS हैकिंग सीखें और अभ्यास करें:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks प्रशिक्षण AWS रेड टीम विशेषज्ञ (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\ सीखें और AWS हैकिंग का अभ्यास करें:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP हैकिंग सीखें और अभ्यास करें: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks प्रशिक्षण GCP रेड टीम विशेषज्ञ (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte) सीखें और GCP हैकिंग का अभ्यास करें: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details> <details>
<summary>हैकट्रिक्स का समर्थन करें</summary> <summary>HackTricks का समर्थन करें</summary>
* [**सदस्यता योजनाएँ**](https://github.com/sponsors/carlospolop) की जाँच करें! * [**सदस्यता योजनाएँ**](https://github.com/sponsors/carlospolop) देखें!
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) और **ट्विटर** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** को** **फॉलो** करें। * **हमारे** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में शामिल हों या **हमें** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर फॉलो करें।**
* **हैकिंग ट्रिक्स साझा करें, PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) **और** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **github रेपो में।** * हैकिंग ट्रिक्स साझा करें और [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) गिटहब रिपोजिटरी में PR सबमिट करें।
</details> </details>
{% endhint %} {% endhint %}
## पासवर्ड ## पासवर्ड
### छाया पासवर्ड ### शैडो पासवर्ड
छाया पासवर्ड प्रयोक्ता के विन्यास के साथ संग्रहीत होता है पीलिस्ट में जो स्थित है **`/var/db/dslocal/nodes/Default/users/`** में।\ शैडो पासवर्ड उपयोगकर्ता की कॉन्फ़िगरेशन के साथ **`/var/db/dslocal/nodes/Default/users/`** में स्थित plist में संग्रहीत होता है।\
निम्नलिखित वनलाइनर का उपयोग किया जा सकता है **सभी उपयोक्ताओं के बारे में सभी जानकारी** (हैश जानकारी सहित) डंप करने के लिए: निम्नलिखित एकल पंक्ति का उपयोग **उपयोगकर्ताओं के बारे में सभी जानकारी** (हैश जानकारी सहित) को डंप करने के लिए किया जा सकता है:
{% code overflow="wrap" %} {% code overflow="wrap" %}
```bash ```bash
@ -28,9 +28,9 @@ for l in /var/db/dslocal/nodes/Default/users/*; do if [ -r "$l" ];then echo "$l"
``` ```
{% endcode %} {% endcode %}
[**इस तरह के स्क्रिप्ट**](https://gist.github.com/teddziuba/3ff08bdda120d1f7822f3baf52e606c2) या [**यह एक**](https://github.com/octomagon/davegrohl.git) को **हैश** को **हैशकैट** **स्वरूप** में परिवर्तित करने के लिए उपयोग किया जा सकता है। [**इस तरह के स्क्रिप्ट**](https://gist.github.com/teddziuba/3ff08bdda120d1f7822f3baf52e606c2) या [**यह वाला**](https://github.com/octomagon/davegrohl.git) हैश को **hashcat** **फॉर्मेट** में बदलने के लिए उपयोग किया जा सकता है।
एक वैकल्पिक वन-लाइनर जो सभी गैर-सेवा खातों के क्रेडेंशियल को हैशकैट स्वरूप में डंप करेगा `-m 7100` (macOS PBKDF2-SHA512): एक वैकल्पिक वन-लाइनर जो hashcat फॉर्मेट `-m 7100` (macOS PBKDF2-SHA512) में सभी गैर-सेवा खातों के क्रेडेंशियल्स को डंप करेगा:
{% code overflow="wrap" %} {% code overflow="wrap" %}
```bash ```bash
@ -38,12 +38,12 @@ sudo bash -c 'for i in $(find /var/db/dslocal/nodes/Default/users -type f -regex
``` ```
{% endcode %} {% endcode %}
### कीचेन डंप ### Keychain Dump
ध्यान दें कि सुरक्षा बाइनरी का उपयोग करते समय **पासवर्ड डिक्रिप्ट करने के लिए डंप** करने पर कई प्रॉम्प्ट उपयोगकर्ता से इस ऑपरेशन की अनुमति देने के लिए पूछेंगे। ध्यान दें कि सुरक्षा बाइनरी का उपयोग करके **डिक्रिप्ट किए गए पासवर्ड को डंप करने** पर, कई प्रॉम्प्ट उपयोगकर्ता से इस ऑपरेशन की अनुमति देने के लिए पूछेंगे।
```bash ```bash
#security #security
secuirty dump-trust-settings [-s] [-d] #List certificates security dump-trust-settings [-s] [-d] #List certificates
security list-keychains #List keychain dbs security list-keychains #List keychain dbs
security list-smartcards #List smartcards security list-smartcards #List smartcards
security dump-keychain | grep -A 5 "keychain" | grep -v "version" #List keychains entries security dump-keychain | grep -A 5 "keychain" | grep -v "version" #List keychains entries
@ -52,44 +52,42 @@ security dump-keychain -d #Dump all the info, included secrets (the user will be
### [Keychaindump](https://github.com/juuso/keychaindump) ### [Keychaindump](https://github.com/juuso/keychaindump)
{% hint style="danger" %} {% hint style="danger" %}
इस टिप्पणी के आधार पर [juuso/keychaindump#10 (comment)](https://github.com/juuso/keychaindump/issues/10#issuecomment-751218760) यह लगता है कि ये उपकरण Big Sur में अब काम नहीं कर रहे हैं। इस टिप्पणी के आधार पर [juuso/keychaindump#10 (comment)](https://github.com/juuso/keychaindump/issues/10#issuecomment-751218760) ऐसा लगता है कि ये उपकरण अब Big Sur में काम नहीं कर रहे हैं।
{% endhint %} {% endhint %}
### Keychaindump Overview ### Keychaindump का अवलोकन
एक उपकरण जिसका नाम **keychaindump** है, इसका विकास macOS की keychains से पासवर्ड निकालने के लिए किया गया है, लेकिन नए macOS संस्करणों जैसे Big Sur पर इसकी कुछ सीमाएँ हैं, जैसा कि [चर्चा](https://github.com/juuso/keychaindump/issues/10#issuecomment-751218760) में इंगित किया गया है। **keychaindump** का उपयोग अटैकर को **root** तक पहुंचने और वर्चस्व को उन्नत करने की आवश्यकता है। यह उपकरण उस तथ्य का शोषण करता है कि keychain डिफ़ॉल्ट रूप से उपयोक्ता लॉगिन के बाद अनलॉक होता है ताकि अनुकूलता के लिए अनुप्रयोग उसे बार-बार उपयोगकर्ता का पासवर्ड नहीं मांगें। हालांकि, यदि एक उपयोक्ता हर उपयोग के बाद अपनी keychain को लॉक करने का विकल्प चुनता है, तो **keychaindump** अप्रभावी हो जाता है। **keychaindump** नामक एक उपकरण macOS की कीचेन से पासवर्ड निकालने के लिए विकसित किया गया है, लेकिन यह Big Sur जैसे नए macOS संस्करणों पर सीमाओं का सामना करता है, जैसा कि एक [चर्चा](https://github.com/juuso/keychaindump/issues/10#issuecomment-751218760) में बताया गया है। **keychaindump** का उपयोग करने के लिए हमलावर को **root** तक पहुंच प्राप्त करनी और विशेषाधिकार बढ़ाने की आवश्यकता होती है। यह उपकरण इस तथ्य का लाभ उठाता है कि कीचेन उपयोगकर्ता लॉगिन पर डिफ़ॉल्ट रूप से अनलॉक होता है, जिससे अनुप्रयोगों को बार-बार उपयोगकर्ता का पासवर्ड मांगे बिना इसे एक्सेस करने की अनुमति मिलती है। हालाँकि, यदि कोई उपयोगकर्ता प्रत्येक उपयोग के बाद अपनी कीचेन को लॉक करने का विकल्प चुनता है, तो **keychaindump** अप्रभावी हो जाता है।
**Keychaindump** एक विशिष्ट प्रक्रिया को लक्ष्य बनाकर काम करता है जिसे **securityd** कहा जाता है, जिसे Apple ने प्रमाणीकरण और यांत्रिक आपरेशनों के लिए डेमन के रूप में वर्णित किया है, जो keychain तक पहुंचने के लिए महत्वपूर्ण है। निकालने की प्रक्रिया में उपयोगकर्ता के लॉगिन पासवर्ड से निकली गई एक **मास्टर की** की पहचान करना महत्वपूर्ण है। यह कुंजी keychain फ़ाइल को पढ़ने के लिए आवश्यक है। **keychaindump** **securityd** की मेमोरी हीप को `vmmap` कमांड का उपयोग करके लक्ष्य बनाता है, `MALLOC_TINY` के रूप में झंझट के क्षेत्रों में संभावित कुंजियों की खोज करता है। इन मेमोरी स्थानों की जांच के लिए निम्नलिखित कमांड का उपयोग किया जाता है: **Keychaindump** एक विशिष्ट प्रक्रिया **securityd** को लक्षित करके काम करता है, जिसे Apple द्वारा प्राधिकरण और क्रिप्टोग्राफिक संचालन के लिए एक डेमन के रूप में वर्णित किया गया है, जो कीचेन तक पहुंच के लिए महत्वपूर्ण है। निष्कर्षण प्रक्रिया में उपयोगकर्ता के लॉगिन पासवर्ड से निकाली गई **Master Key** की पहचान करना शामिल है। यह कुंजी कीचेन फ़ाइल को पढ़ने के लिए आवश्यक है। **Master Key** को खोजने के लिए, **keychaindump** `vmmap` कमांड का उपयोग करके **securityd** की मेमोरी हीप को स्कैन करता है, संभावित कुंजियों को `MALLOC_TINY` के रूप में चिह्नित क्षेत्रों के भीतर देखता है। इन मेमोरी स्थानों का निरीक्षण करने के लिए निम्नलिखित कमांड का उपयोग किया जाता है:
```bash ```bash
sudo vmmap <securityd PID> | grep MALLOC_TINY sudo vmmap <securityd PID> | grep MALLOC_TINY
``` ```
पॉटेंशियल मास्टर की को पहचानने के बाद, **keychaindump** विशिष्ट पैटर्न (`0x0000000000000018`) के लिए हीप्स में खोज करता है जो मास्टर की के लिए उम्मीदवार को दर्शाता है। इस की का उपयोग करने के लिए और चरणों की आवश्यकता होती है, जैसा **keychaindump** के स्रोत कोड में विस्तार से वर्णित है। इस क्षेत्र पर ध्यान केंद्रित विश्लेषकों को ध्यान देना चाहिए कि कीचेन को डिक्रिप्ट करने के लिए महत्वपूर्ण डेटा **securityd** प्रक्रिया की मेमोरी में संग्रहित है। **keychaindump** चलाने के लिए एक उदाहरण कमांड है: बाद में संभावित मास्टर कुंजियों की पहचान करने के बाद, **keychaindump** एक विशिष्ट पैटर्न (`0x0000000000000018`) के लिए ढेरों में खोज करता है जो मास्टर कुंजी के लिए एक उम्मीदवार को इंगित करता है। इस कुंजी का उपयोग करने के लिए आगे के कदम, जिसमें डिओबफस्केशन शामिल है, आवश्यक हैं, जैसा कि **keychaindump** के स्रोत कोड में वर्णित है। इस क्षेत्र पर ध्यान केंद्रित करने वाले विश्लेषकों को यह ध्यान रखना चाहिए कि कुंजीचेन को डिक्रिप्ट करने के लिए महत्वपूर्ण डेटा **securityd** प्रक्रिया की मेमोरी में संग्रहीत होता है। **keychaindump** चलाने के लिए एक उदाहरण कमांड है:
```bash ```bash
sudo ./keychaindump sudo ./keychaindump
``` ```
### चेनब्रेकर ### chainbreaker
[**चेनब्रेकर**](https://github.com/n0fate/chainbreaker) का उपयोग एक OSX कीचेन से नियंत्रित ढंग से निम्नलिखित प्रकार की जानकारी निकालने के लिए किया जा सकता है: [**Chainbreaker**](https://github.com/n0fate/chainbreaker) का उपयोग OSX कीचेन से फोरेंसिक रूप से सही तरीके से निम्नलिखित प्रकार की जानकारी निकालने के लिए किया जा सकता है:
* हैश वाला Keychain पासवर्ड, [hashcat](https://hashcat.net/hashcat/) या [John the Ripper](https://www.openwall.com/john/) के साथ क्रैकिंग के लिए उपयुक्त * हैश किया गया कीचेन पासवर्ड, [hashcat](https://hashcat.net/hashcat/) या [John the Ripper](https://www.openwall.com/john/) के साथ क्रैक करने के लिए उपयुक्त
* इंटरनेट पासवर्ड * इंटरनेट पासवर्ड
* सामान्य पासवर्ड * सामान्य पासवर्ड
* निजी कुंजी * निजी कुंजी
* सार्वजनिक कुंजी * सार्वजनिक कुंजी
* X509 प्रमाणपत्र * X509 प्रमाणपत्र
* सुरक्षित नोट्स * सुरक्षित नोट्स
* एप्पलशेयर पासवर्ड * Appleshare पासवर्ड
कीचेन अनलॉक पासवर्ड, [volafox](https://github.com/n0fate/volafox) या [volatility](https://github.com/volatilityfoundation/volatility) का उपयोग करके प्राप्त मास्टर कुंजी, या सिस्टमकी जैसा अनलॉक फ़ाइल के साथ, चेनब्रेकर भी सादा पासवर्ड प्रदान करेगा। कीचेन अनलॉक पासवर्ड, [volafox](https://github.com/n0fate/volafox) या [volatility](https://github.com/volatilityfoundation/volatility) का उपयोग करके प्राप्त मास्टर कुंजी, या SystemKey जैसे अनलॉक फ़ाइल के बिना, Chainbreaker सभी अन्य उपलब्ध जानकारी प्रदर्शित करेगा।
कीचेन को अनलॉक करने के इन तरीकों में से किसी एक के बिना, चेनब्रेकर सभी अन्य उपलब्ध जानकारी प्रदर्शित करेगा। #### **Dump keychain keys**
#### **कीचेन कुंजियों को डंप करें**
```bash ```bash
#Dump all keys of the keychain (without the passwords) #Dump all keys of the keychain (without the passwords)
python2.7 chainbreaker.py --dump-all /Library/Keychains/System.keychain python2.7 chainbreaker.py --dump-all /Library/Keychains/System.keychain
``` ```
#### **सिस्टमकी के साथ कीचेन कुंजी (साथ में पासवर्ड) डंप करें** #### **सिस्टमकी के साथ कीचेन कुंजी (पासवर्ड के साथ) डंप करें**
```bash ```bash
# First, get the keychain decryption key # First, get the keychain decryption key
# To get this decryption key you need to be root and SIP must be disabled # To get this decryption key you need to be root and SIP must be disabled
@ -97,7 +95,7 @@ hexdump -s 8 -n 24 -e '1/1 "%.2x"' /var/db/SystemKey && echo
## Use the previous key to decrypt the passwords ## Use the previous key to decrypt the passwords
python2.7 chainbreaker.py --dump-all --key 0293847570022761234562947e0bcd5bc04d196ad2345697 /Library/Keychains/System.keychain python2.7 chainbreaker.py --dump-all --key 0293847570022761234562947e0bcd5bc04d196ad2345697 /Library/Keychains/System.keychain
``` ```
#### **हैश को क्रैक करके कीचेन कुंजी (साथ में पासवर्ड) डंप करें** #### **कीचेन कुंजी (पासवर्ड के साथ) डंप करना हैश को क्रैक करना**
```bash ```bash
# Get the keychain hash # Get the keychain hash
python2.7 chainbreaker.py --dump-keychain-password-hash /Library/Keychains/System.keychain python2.7 chainbreaker.py --dump-keychain-password-hash /Library/Keychains/System.keychain
@ -106,9 +104,9 @@ hashcat.exe -m 23100 --keep-guessing hashes.txt dictionary.txt
# Use the key to decrypt the passwords # Use the key to decrypt the passwords
python2.7 chainbreaker.py --dump-all --key 0293847570022761234562947e0bcd5bc04d196ad2345697 /Library/Keychains/System.keychain python2.7 chainbreaker.py --dump-all --key 0293847570022761234562947e0bcd5bc04d196ad2345697 /Library/Keychains/System.keychain
``` ```
#### **मेमोरी डंप के साथ कीचेन कुंजी (साथ पासवर्ड) डंप करें** #### **कीचेन कुंजियों (पासवर्ड के साथ) को मेमोरी डंप के साथ डंप करें**
[इन चरणों का पालन करें](../#dumping-memory-with-osxpmem) एक **मेमोरी डंप** करने के लिए [इन चरणों का पालन करें](../#dumping-memory-with-osxpmem) **मेमोरी डंप** करने के लिए
```bash ```bash
#Use volafox (https://github.com/n0fate/volafox) to extract possible keychain passwords #Use volafox (https://github.com/n0fate/volafox) to extract possible keychain passwords
# Unformtunately volafox isn't working with the latest versions of MacOS # Unformtunately volafox isn't working with the latest versions of MacOS
@ -117,23 +115,23 @@ python vol.py -i ~/Desktop/show/macosxml.mem -o keychaindump
#Try to extract the passwords using the extracted keychain passwords #Try to extract the passwords using the extracted keychain passwords
python2.7 chainbreaker.py --dump-all --key 0293847570022761234562947e0bcd5bc04d196ad2345697 /Library/Keychains/System.keychain python2.7 chainbreaker.py --dump-all --key 0293847570022761234562947e0bcd5bc04d196ad2345697 /Library/Keychains/System.keychain
``` ```
#### **उपयोगकर्ता के पासवर्ड का उपयोग करके कीचेन कुंजी (साथ में पासवर्ड) डंप करें** #### **उपयोगकर्ता के पासवर्ड का उपयोग करके कीचेन कुंजी (पासवर्ड के साथ) डंप करें**
यदि आप उपयोगकर्ता का पासवर्ड जानते हैं तो आप इसका उपयोग करके **उपयोगकर्ता के कीचेन कुंजी को डंप और डिक्रिप्ट** कर सकते हैं। यदि आप उपयोगकर्ता का पासवर्ड जानते हैं, तो आप इसका उपयोग **उपयोगकर्ता के स्वामित्व वाले कीचेन को डंप और डिक्रिप्ट करने के लिए** कर सकते हैं।
```bash ```bash
#Prompt to ask for the password #Prompt to ask for the password
python2.7 chainbreaker.py --dump-all --password-prompt /Users/<username>/Library/Keychains/login.keychain-db python2.7 chainbreaker.py --dump-all --password-prompt /Users/<username>/Library/Keychains/login.keychain-db
``` ```
### kcpassword ### kcpassword
**kcpassword** फ़ाइल एक फ़ाइल है जो **उपयोगकर्ता का लॉगिन पासवर्ड** रखती है, लेकिन केवल तभी जब सिस्टम के मालिक ने **स्वचालित लॉगिन** को सक्षम किया है। इसलिए, उपयोगकर्ता को पासवर्ड के बिना स्वचालित रूप से लॉगिन किया जाएगा (जो बहुत ही सुरक्षित नहीं है)। **kcpassword** फ़ाइल एक फ़ाइल है जो **उपयोगकर्ता का लॉगिन पासवर्ड** रखती है, लेकिन केवल तभी जब सिस्टम के मालिक ने **स्वचालित लॉगिन** सक्षम किया हो। इसलिए, उपयोगकर्ता बिना पासवर्ड पूछे स्वचालित रूप से लॉगिन हो जाएगा (जो बहुत सुरक्षित नहीं है)।
पासवर्ड **`/etc/kcpassword`** फ़ाइल में **`0x7D 0x89 0x52 0x23 0xD2 0xBC 0xDD 0xEA 0xA3 0xB9 0x1F`** कुंजी के साथ xored के साथ संग्रहीत है। यदि उपयोगकर्ता का पासवर्ड कुंजी से लंबा है, तो कुंजी का पुन उपयोग किया जाएगा।\ पासवर्ड फ़ाइल **`/etc/kcpassword`** में **`0x7D 0x89 0x52 0x23 0xD2 0xBC 0xDD 0xEA 0xA3 0xB9 0x1F`** कुंजी के साथ XOR किया गया है। यदि उपयोगकर्ता का पासवर्ड कुंजी से लंबा है, तो कुंजी का पुन: उपयोग किया जाएगा।\
इससे पासवर्ड को पुनः प्राप्त करना बहुत ही आसान बना देता है, उदाहरण के लिए [**इस**](https://gist.github.com/opshope/32f65875d45215c3677d) जैसे स्क्रिप्ट का उपयोग करके। यह पासवर्ड को पुनर्प्राप्त करना काफी आसान बनाता है, उदाहरण के लिए [**इस स्क्रिप्ट**](https://gist.github.com/opshope/32f65875d45215c3677d) का उपयोग करके।
## डेटाबेस में दिलचस्प जानकारी ## Interesting Information in Databases
### संदेश ### Messages
```bash ```bash
sqlite3 $HOME/Library/Messages/chat.db .tables sqlite3 $HOME/Library/Messages/chat.db .tables
sqlite3 $HOME/Library/Messages/chat.db 'select * from message' sqlite3 $HOME/Library/Messages/chat.db 'select * from message'
@ -141,20 +139,22 @@ sqlite3 $HOME/Library/Messages/chat.db 'select * from attachment'
sqlite3 $HOME/Library/Messages/chat.db 'select * from deleted_messages' sqlite3 $HOME/Library/Messages/chat.db 'select * from deleted_messages'
sqlite3 $HOME/Suggestions/snippets.db 'select * from emailSnippets' sqlite3 $HOME/Suggestions/snippets.db 'select * from emailSnippets'
``` ```
### सूचनाएं ### Notifications
आप `$(getconf DARWIN_USER_DIR)/com.apple.notificationcenter/` में सूचनाएं डेटा पा सकते हैं। आप Notifications डेटा को `$(getconf DARWIN_USER_DIR)/com.apple.notificationcenter/` में पा सकते हैं।
अधिकांश दिलचस्प जानकारी **ब्लॉब** में होगी। इसलिए आपको उस सामग्री को **निकालना** होगा और **मानव** **पठनीय** में **परिवर्तित** करना होगा या **`strings`** का उपयोग करना होगा। इस तक पहुंचने के लिए आप यह कर सकते हैं: सबसे दिलचस्प जानकारी **blob** में होगी। इसलिए आपको उस सामग्री को **extract** करना होगा और **human** **readable** में **transform** करना होगा या **`strings`** का उपयोग करना होगा। इसे एक्सेस करने के लिए आप कर सकते हैं:
{% code overflow="wrap" %}
```bash ```bash
cd $(getconf DARWIN_USER_DIR)/com.apple.notificationcenter/ cd $(getconf DARWIN_USER_DIR)/com.apple.notificationcenter/
strings $(getconf DARWIN_USER_DIR)/com.apple.notificationcenter/db2/db | grep -i -A4 slack strings $(getconf DARWIN_USER_DIR)/com.apple.notificationcenter/db2/db | grep -i -A4 slack
``` ```
{% endcode %} {% endcode %}
### नोट ### नोट्स
उपयोगकर्ताओं के **नोट** यहाँ मिल सकते हैं `~/Library/Group Containers/group.com.apple.notes/NoteStore.sqlite` उपयोगकर्ताओं के **नोट्स** `~/Library/Group Containers/group.com.apple.notes/NoteStore.sqlite` में पाए जा सकते हैं
{% code overflow="wrap" %} {% code overflow="wrap" %}
```bash ```bash
@ -167,21 +167,21 @@ for i in $(sqlite3 ~/Library/Group\ Containers/group.com.apple.notes/NoteStore.s
## Preferences ## Preferences
macOS ऐप्स में preferences **`$HOME/Library/Preferences`** में स्थित होते हैं और iOS में व`/var/mobile/Containers/Data/Application/<UUID>/Library/Preferences` में होते हैं। macOS ऐप्स की प्राथमिकताएँ **`$HOME/Library/Preferences`** में स्थित होती हैं और iOS में य`/var/mobile/Containers/Data/Application/<UUID>/Library/Preferences` में होती हैं।&#x20;
macOS में cli टूल **`defaults`** का उपयोग **Preferences फ़ाइल को संशोधित करने** के लिए किया जा सकता है। macOS में CLI टूल **`defaults`** का उपयोग **प्राथमिकताएँ फ़ाइल को संशोधित करने** के लिए किया जा सकता है।
**`/usr/sbin/cfprefsd`** XPC सेवा`com.apple.cfprefsd.daemon` और `com.apple.cfprefsd.agent` का दावा करता है और preferences को संशोधित करने जैसे कार्रवाई करने के लिए कॉल किया जा सकता है। **`/usr/sbin/cfprefsd`** XPC सेवा`com.apple.cfprefsd.daemon` और `com.apple.cfprefsd.agent` का दावा करता है और प्राथमिकताओं को संशोधित करने जैसी क्रियाएँ करने के लिए इसे कॉल किया जा सकता है।
## System Notifications ## System Notifications
### Darwin Notifications ### Darwin Notifications
Notifications के लिए मुख्य डेमन **`/usr/sbin/notifyd`** है। Notifications प्राप्त करने के लिए, clients को `com.apple.system.notification_center` Mach port के माध्यम से रजिस्टर करना होता है (उन्हें `sudo lsmp -p <pid notifyd>` के साथ जांचें)। डेमन को फ़ाइल `/etc/notify.conf` के साथ कॉन्फ़िगर किया जा सकता है। सूचनाओं के लिए मुख्य डेमन **`/usr/sbin/notifyd`** है। सूचनाएँ प्राप्त करने के लिए, क्लाइंट को `com.apple.system.notification_center` Mach पोर्ट के माध्यम से पंजीकरण कराना होगा (इन्हें `sudo lsmp -p <pid notifyd>` के साथ जांचें)। डेमन को फ़ाइल `/etc/notify.conf` के साथ कॉन्फ़िगर किया जा सकता है।
Notifications के लिए उपयोग किए जाने वाले नाम अद्वितीय प्रतिलिपि DNS नोटेशन होते हैं और जब उनमें से किसी एक को भेजा जाता है, तो उन client(s) को जो इसे संभालने का संकेत देते हैं, वह इसे प्राप्त करेंगे। सूचनाओं के लिए उपयोग किए जाने वाले नाम अद्वितीय रिवर्स DNS नोटेशन हैं और जब इनमें से किसी को सूचना भेजी जाती है, तो वे क्लाइंट जो इसे संभालने के लिए संकेतित करते हैं, इसे प्राप्त करेंगे।
वर्तमान स्थिति को डंप करना संभव है (और सभी नाम देखना) notifyd प्रक्रिया को सिग्नल SIGUSR2 भेजकर और उत्पन्न फ़ाइल पढ़कर: `/var/run/notifyd_<pid>.status`: वर्तमान स्थिति को डंप करना संभव है (और सभी नामों को देखना) notifyd प्रक्रिया को SIGUSR2 सिग्नल भेजकर और उत्पन्न फ़ाइल को पढ़कर: `/var/run/notifyd_<pid>.status`:
```bash ```bash
ps -ef | grep -i notifyd ps -ef | grep -i notifyd
0 376 1 0 15Mar24 ?? 27:40.97 /usr/sbin/notifyd 0 376 1 0 15Mar24 ?? 27:40.97 /usr/sbin/notifyd
@ -197,44 +197,44 @@ common: com.apple.CFPreferences._domainsChangedExternally
common: com.apple.security.octagon.joined-with-bottle common: com.apple.security.octagon.joined-with-bottle
[...] [...]
``` ```
### वितरित सूचना केंद्र ### Distributed Notification Center
**वितरित सूचना केंद्र** जिसका मुख्य बाइनरी है **`/usr/sbin/distnoted`**, एक और तरीका है सूचनाएं भेजने का। इसमें कुछ XPC सेवाएं उजागर की गई हैं और यह कुछ जांच कार्रवाई करता है ताकि ग्राहकों की पुष्टि की जा सके **Distributed Notification Center** जिसका मुख्य बाइनरी **`/usr/sbin/distnoted`** है, सूचनाएँ भेजने का एक और तरीका है। यह कुछ XPC सेवाओं को उजागर करता है और यह क्लाइंट्स को सत्यापित करने के लिए कुछ जांच करता है
### एप्पल पुश सूचनाएं (APN) ### Apple Push Notifications (APN)
इस मामले में, एप्लिकेशन **विषयों** के लिए पंजीकरण कर सकती हैं। ग्राहक एप्पल के सर्वरों से संपर्क करके एक टोकन उत्पन्न करेगा **`apsd`** के माध्यम से।\ इस मामले में, अनुप्रयोग **topics** के लिए पंजीकरण कर सकते हैं। क्लाइंट **`apsd`** के माध्यम से Apple के सर्वरों से संपर्क करके एक टोकन उत्पन्न करेगा।\
फिर, प्रदाताओं ने भी एक टोकन उत्पन्न किया होगा और वे एप्पल के सर्वरों से संपर्क करने में सक्षम होंगे ताकि संदेश ग्राहकों को भेज सकें। ये संदेश स्थानीय रूप से **`apsd`** द्वारा प्राप्त किए जाएंगे जो इसका अग्रिम सूचना को उस एप्लिकेशन को पहुंचाएगा जो इसका इंतजार कर रहा होगा। फिर, प्रदाता भी एक टोकन उत्पन्न करेंगे और Apple के सर्वरों से जुड़कर क्लाइंट्स को संदेश भेज सकेंगे। ये संदेश स्थानीय रूप से **`apsd`** द्वारा प्राप्त किए जाएंगे जो इसे प्रतीक्षा कर रहे अनुप्रयोग को सूचना भेजेगा।
संद स्थान `/Library/Preferences/com.apple.apsd.plist` में स्थित है। ्राथमिकताएँ `/Library/Preferences/com.apple.apsd.plist` में स्थित है
मैकओएस में संदेशों का स्थानीय डेटाबेस है `/Library/Application\ Support/ApplePushService/aps.db` और आईओएस में `/var/mobile/Library/ApplePushService` में है। इसमें 3 तालिकाएं हैं: `incoming_messages`, `outgoing_messages` और `channel` macOS में संदेशों का एक स्थानीय डेटाबेस `/Library/Application\ Support/ApplePushService/aps.db` में और iOS में `/var/mobile/Library/ApplePushService` में स्थित है। इसमें 3 तालिकाएँ हैं: `incoming_messages`, `outgoing_messages` और `channel`
```bash ```bash
sudo sqlite3 /Library/Application\ Support/ApplePushService/aps.db sudo sqlite3 /Library/Application\ Support/ApplePushService/aps.db
``` ```
डेमन और कनेक्शन के बारे में जानकारी प्राप्त करना भी संभव है: यहां तक कि डेमन और कनेक्शनों के बारे में जानकारी प्राप्त करना भी संभव है:
```bash ```bash
/System/Library/PrivateFrameworks/ApplePushService.framework/apsctl status /System/Library/PrivateFrameworks/ApplePushService.framework/apsctl status
``` ```
## उपयोगकर्ता सूचनाएँ ## User Notifications
ये सूचनाएँ हैं जो उपयोगकर्ता को स्क्रीन पर दिखानी चाहिए: ये सूचनाएँ हैं जो उपयोगकर्ता को स्क्रीन पर देखनी चाहिए:
* **`CFUserNotification`**: यह API एक संदेश के साथ स्क्रीन पर एक पॉप-अप दिखाने का एक तरीका प्रदान करती है। * **`CFUserNotification`**: ये API स्क्रीन पर एक संदेश के साथ पॉप-अप दिखाने का एक तरीका प्रदान करती है।
* **बुलेटिन बोर्ड**: यह iOS में एक बैनर दिखाता है जो गायब हो जाता है और सूचना केंद्र में संग्रहीत किया जाएगा * **The Bulletin Board**: यह iOS में एक बैनर दिखाता है जो गायब हो जाता है और सूचना केंद्र में संग्रहीत होता है
* **`NSUserNotificationCenter`**: यह MacOS में iOS बुलेटिन बोर्ड है। सूचनाएँ के डेटाबेस को `/var/folders/<user temp>/0/com.apple.notificationcenter/db2/db` में स्थित किया गया है। * **`NSUserNotificationCenter`**: यह MacOS में iOS का बुलेटिन बोर्ड है। सूचनाओं के साथ डेटाबेस `/var/folders/<user temp>/0/com.apple.notificationcenter/db2/db` में स्थित है।
{% hint style="success" %} {% hint style="success" %}
AWS हैकिंग सीखें और अभ्यास करें:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks प्रशिक्षण AWS रेड टीम एक्सपर्ट (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\ Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP हैकिंग सीखें और अभ्यास करें: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks प्रशिक्षण GCP रेड टीम एक्सपर्ट (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte) Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details> <details>
<summary>हैकट्रिक्स का समर्थन करें</summary> <summary>Support HackTricks</summary>
* [**सदस्यता योजनाएँ**](https://github.com/sponsors/carlospolop) की जाँच करें! * Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) और **ट्विटर** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर हमें **फॉलो** करें। * **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **हैकिंग ट्रिक्स साझा करें** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github रेपो में PR जमा करके। * **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details> </details>
{% endhint %} {% endhint %}