☁️ HackTricks क्लाउड ☁️ -🐦 ट्विटर 🐦 - 🎙️ ट्विच 🎙️ - 🎥 यूट्यूब 🎥 - क्या आप किसी **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग** करने की आवश्यकता है? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें! - खोजें [**The PEASS Family**](https://opensea.io/collection/the-peass-family), हमारा विशेष संग्रह [**NFTs**](https://opensea.io/collection/the-peass-family) - प्राप्त करें [**आधिकारिक PEASS & HackTricks 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) में पीआर जमा करके साझा करें।**
# Ext - विस्तारित फ़ाइल सिस्टम **Ext2** बूट पार्टीशन जैसे **जर्नलिंग नहीं करने वाले** पार्टीशन के लिए सबसे आम फ़ाइल सिस्टम है। **Ext3/4** **जर्नलिंग** होते हैं और आमतौर पर **शेष पार्टीशनों** के लिए उपयोग किए जाते हैं। फ़ाइल सिस्टम में सभी ब्लॉक समूहों का एक ही आकार होता है और यह क्रमशः संग्रहीत होते हैं। इससे कर्णल आसानी से ब्लॉक समूह की डिस्क में स्थान का पता लगा सकता है। प्रत्येक ब्लॉक समूह में निम्नलिखित जानकारी होती है: * फ़ाइल सिस्टम का सुपरब्लॉक की एक प्रतिलिपि * ब्लॉक समूह विवरणिकारों की एक प्रतिलिपि * डेटा ब्लॉक बिटमैप जो समूह में मुक्त ब्लॉकों की पहचान करने के लिए उपयोग होती है * इनोड बिटमैप, जो समूह में मुक्त इनोड की पहचान करने के लिए उपयोग होती है * इनोड टेबल: यह एक श्रृंखला के रूप में होता है, प्रत्येक में एक पूर्वनिर्धारित आकार के Figure 1 Ext2 इनोड संख्या होती है। सभी इनोड का एक ही आकार होता है: 128 बाइट। 1,024 बाइट ब्लॉक में 8 इनोड होते हैं, जबकि 4,096-बाइट ब्लॉक में 32 इनोड होते हैं। ध्यान दें कि Ext2 में, इनोड संख्या और संबंधित ब्लॉक संख्या के बीच का मैपिंग डिस्क पर संग्रहीत करने की आवश्यकता नहीं होती है क्योंकि इसका मान ब्लॉक समूह संख्या और इनोड टेबल के अंदरीय स्थान के साथ निर्धारित किया जा सकता है। उदाहरण के लिए, मान लीजिए कि प्रत्येक ब्लॉक समूह में 4,096 इनोड होते हैं और हमें डिस्क पर इनोड 13,021 का पता लगाना है। इस मामले में, इनोड तीसरे ब्लॉक समूह का हिस्सा है और इसका डिस्क पता संबंधित इनोड टेबल के 733 वें प्रविष्टि में संग्रहीत होता है। जैसा कि आप देख सकते हैं, इनोड संख्या केवल एक कुंजी है जिसका उपयोग Ext2 रूटीन्स द्वारा डिस्क पर उचित इनोड विवरणकार को प्राप्त करने के लिए किया जाता है * फ़ाइलों को संग्रहीत करने वाले डेटा ब्लॉक। किसी भी ब्लॉक में कोई अर्थपूर्ण जानकारी न होने की स्थिति में उन्हें मुक्त कहा जाता है। ![](<../../../.gitbook/assets/image (406).png>) ## Ext वैकल्पिक सुविधाएँ **सुविधाएँ** डेटा के स्थान को प्रभावित करती हैं, **इनोड में डेटा को कैसे** संग्रहीत किया जाता है और उनमें से कुछ अतिरिक्त मेटाडेटा प्रदान कर सकती हैं, इसलिए सुविधाएँ Ext में महत्वपूर्ण हैं। Ext में ऐसी वैकल्पिक सुविधाएं होती हैं जिन्हें आपका ऑपरेटिंग सिस्टम समर्थन कर सकता है, इसके तीन संभावितताएं होती हैं: * स ```bash fsstat -o /pat/to/filesystem-file.ext #You can get the with the "p" command inside fdisk ``` आप नि:शुल्क GUI एप्लिकेशन भी उपयोग कर सकते हैं: [https://www.disk-editor.org/index.html](https://www.disk-editor.org/index.html)\ या आप **python** का उपयोग करके सुपरब्लॉक जानकारी प्राप्त करने के लिए भी उपयोग कर सकते हैं: [https://pypi.org/project/superblock/](https://pypi.org/project/superblock/) ## इनोड्स **इनोड्स** में **ब्लॉकों** की सूची होती है जो एक **फ़ाइल** के वास्तविक **डेटा** को **संग्रहित** करते हैं।\ यदि फ़ाइल बड़ी है और इनोड में **अन्य इनोड्स** को इंगित कर सकता है जो फ़ाइल डेटा को संग्रहित करने वाले ब्लॉकों / अधिक इनोड्स की ओर पहुंचते हैं। ![](<../../../.gitbook/assets/image (416).png>) **Ext2** और **Ext3** में इनोड्स का आकार **128B** होता है, **Ext4** वर्तमान में **156B** का उपयोग करता है लेकिन भविष्य में विस्तार की अनुमति देने के लिए डिस्क पर **256B** का आवंटन करता है। इनोड संरचना: | Offset | Size | Name | DescriptionF | | ------ | ---- | ----------------- | ------------------------------------------------ | | 0x0 | 2 | फ़ाइल मोड | फ़ाइल मोड और प्रकार | | 0x2 | 2 | UID | मालिक ID के निचले 16 बिट | | 0x4 | 4 | आकार इल | फ़ाइल के आकार के निचले 32 बिट | | 0x8 | 4 | Atime | एपॉक से सेकंड में पहुंच का समय | | 0xC | 4 | Ctime | एपॉक से सेकंड में बदलने का समय | | 0x10 | 4 | Mtime | एपॉक से सेकंड में संशोधित करने का समय | | 0x14 | 4 | Dtime | एपॉक से सेकंड में हटाने का समय | | 0x18 | 2 | GID | समूह ID के निचले 16 बिट | | 0x1A | 2 | Hlink count | हार्ड लिंक की संख्या | | 0xC | 4 | ब्लॉक्स आईओ | ब्लॉक की गिनती के निचले 32 बिट | | 0x20 | 4 | ध्वज | ध्वज | | 0x24 | 4 | संघ ओएसडी1 | लिनक्स: आई संस्करण | | 0x28 | 69 | ब्लॉक\[15] | 15 डेटा ब्लॉक की ओर पहुंच करता है | | 0x64 | 4 | संस्करण | NFS के लिए फ़ाइल संस्करण | | 0x68 | 4 | फ़ाइल एसीएल लो | विस्तारित गुणधर्मों (ACL, आदि) के निचले 32 बिट | | 0x6C | 4 | फ़ाइल आकार हाई | फ़ाइल के ऊपरी 32 बिट (केवल ext4) | | 0x70 | 4 | विघ्नित टुकड़ा | एक विघ्नित टुकड़ा पता | | 0x74 | 12 | ओएसडी 2 | दूसरे ऑपरेटिंग सिस्टम निर्भर संघ | | 0x74 | 2 | ब्लॉक्स हाई | ब्लॉक की गिनती के ऊपरी 16 बिट | | 0x76 | 2 | फ़ाइल एसीएल हाई | विस्तारित गुणधर्मों (ACL, आदि) के ऊपरी 16 बिट | | 0x78 | 2 | UID हाई | मालिक ID के ऊपरी 16 बिट | | 0x7A | 2 | GID हाई | समूह ID के ऊपरी 16 बिट | | 0x7C | 2 | चेकसम आईओ | इनोड चेकसम के निचले 16 बिट | "संशोधित" वह समय है जब फ़ाइल की _सामग्री_ को अंतिम बार संशोधित किया गया है। इसे अक्सर "_मोडिफाई समय_" कहा जाता है।\ "बदलें" वह समय है जब फ़ाइल की _इनोड_ को बदला गया है, जैसे अनुमतियों, स्वामित्व, फ़ाइल नाम और हार्ड लिंक की संख्या बदलकर। इसे अक्सर "_चेंज समय_" कहा जाता है। इनोड संरचना विस्तारित (Ext4): | Offset | Size | Name | Description | | ------ | ---- | ----------- | --------------------------------------- | | 0x80 | 2 | अतिरिक्त आकार | 128 के पार स्टैंडर्ड बाइट का उपयोग होता है | | 0x82 | 2 | चेकसम हाई | इनोड चेकसम के ऊपरी 16 बिट | | 0x84 | 4 | चेंज समय अतिरिक्त | चेंज समय अतिरिक्त बिट | | 0x88 | 4 | मोडिफाई समय अतिरिक्त | मोडिफाई समय अतिरिक्त बिट | | 0x8C | 4 | पहुंच समय अतिरिक्त | पहुंच समय अतिरिक्त बिट | | 0x90 | 4 | फ़ाइल बनाने का समय | फ़ाइल बनाने का समय (एपॉक से सेकंड) | | 0x94 | 4 | फ़ाइल बनाने का समय अतिरिक्त | फ़ाइल बनाने का समय अतिरिक्त बिट | | 0x98 | 4 | संस्करण हाई | संस्करण के ऊपरी 32 ```bash ls -ali /bin | sort -n #Get all inode numbers and sort by them stat /bin/ls #Get the inode information of a file istat -o /path/to/image.ext 657103 #Get information of that inode inside the given ext file icat -o /path/to/image.ext 657103 #Cat the file ``` फ़ाइल मोड | संख्या | विवरण | | ------ | --------------------------------------------------------------------------------------------------- | | **15** | **Reg/Slink-13/Socket-14** | | **14** | **Directory/Block Bit 13** | | **13** | **Char Device/Block Bit 14** | | **12** | **FIFO** | | 11 | सेट UID | | 10 | सेट GID | | 9 | स्टिकी बिट (इसके बिना, किसी भी व्यक्ति को एक निर्देशिका पर लिखने और नाम बदलने की अनुमति होती है) | | 8 | मालिक पढ़ें | | 7 | मालिक लिखें | | 6 | मालिक चलाएं | | 5 | समूह पढ़ें | | 4 | समूह लिखें | | 3 | समूह चलाएं | | 2 | अन्य लोग पढ़ें | | 1 | अन्य लोग लिखें | | 0 | अन्य लोग चलाएं | बोल्ड बिट (12, 13, 14, 15) फ़ाइल के प्रकार को दर्शाते हैं (एक निर्देशिका, सॉकेट...) बोल्ड में से केवल एक विकल्प हो सकता है। निर्देशिकाएँ | ऑफसेट | आकार | नाम | विवरण | | ------ | ---- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | | 0x0 | 4 | इनोड | | | 0x4 | 2 | रेक लेन | रेकॉर्ड लंबाई | | 0x6 | 1 | नाम लंबाई | नाम लंबाई | | 0x7 | 1 | फ़ाइल प्रकार |

0x00 अज्ञात
0x01 नियमित

0x02 निर्देशिका

0x03 चार उपकरण

0x04 ब्लॉक उपकरण

0x05 FIFO

0x06 सॉकेट

0x07 सिम लिंक

| | 0x8 | | नाम | नाम स्ट्रिंग (अधिकतम 255 वर्ण) | **प्रदर्शन को बढ़ाने के लिए, रूट हैश निर्देशिका ब्लॉक का उपयोग किया जा सकता है।** **विस्तारित गुण** इनमें संग्रहीत किया जा सकता है * इनोड के बीच अतिरिक्त स्थान (256 - इनोड आकार, आमतौर पर = 100) * इनोड में फ़ाइल\_acl द्वारा इंगित डेटा ब्लॉक यदि नाम "उपयोगकर्ता" से शुरू होता है, तो किसी भी डेटा को उपयोगकर्ताओं के गुण के रूप में संग्रहीत किया जा सकता है। इस तरीके से डेटा छिपाया जा सकता है। विस्तारित गुण प्रविष्टियाँ | ऑफसेट | आकार | नाम | विवरण | | ------ | ---- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | 0x0 | 1 | नाम लंबाई | गुण के नाम की लंबाई | | 0x1 | 1 | नाम सूचकांक |

0x0 = कोई प्रीफ़िक्स नहीं

0x1 = उपयोगकर्ता. प्रीफ़िक्स

0x2 = सिस्टम.posix_acl_access

0x3 = सिस्टम.posix_acl_default

0x4 = विश्वसनीय.

0x6 = सुरक्षा.

0x7 = सिस्टम.

0x8 = सिस्टम.richacl

| | 0x2 | 2 | मान ऑफ़सेट | पहले इनोड प्रविष्टि या ब्लॉक की शुरुआत से ऑफ़सेट | | 0x4 | 4 | मान ब्लॉक | मान संग्रहीत किए गए डिस्क ब्लॉक या इस ब्लॉक के लिए शून्य | | 0x8 | 4 | मान आकार | मान की लंबाई | | 0xC | 4 | हैश | ब्लॉक में गुणों के लिए हैश या इनोड में हैश के लिए शून्य | | 0x10 | | नाम | गुण का नाम ट्रेलिंग नल बिना | ```bash setfattr -n 'user.secret' -v 'This is a secret' file.txt #Save a secret using extended attributes getfattr file.txt #Get extended attribute names of a file getdattr -n 'user.secret' file.txt #Get extended attribute called "user.secret" ``` ## फ़ाइल सिस्टम दृश्य फ़ाइल सिस्टम की सामग्री देखने के लिए, आप **मुफ़्त उपकरण का उपयोग कर सकते हैं**: [https://www.disk-editor.org/index.html](https://www.disk-editor.org/index.html)\ या आप इसे अपने लिनक्स में `mount` कमांड का उपयोग करके माउंट कर सकते हैं। [https://piazza.com/class\_profile/get\_resource/il71xfllx3l16f/inz4wsb2m0w2oz#:\~:text=The%20Ext2%20file%20system%20divides,lower%20average%20disk%20seek%20time.](https://piazza.com/class\_profile/get\_resource/il71xfllx3l16f/inz4wsb2m0w2oz#:\~:text=The%20Ext2%20file%20system%20divides,lower%20average%20disk%20seek%20time.)
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 - क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग** करने की आवश्यकता है? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें! - खोजें [**The PEASS Family**](https://opensea.io/collection/the-peass-family), हमारा विशेष संग्रह [**NFTs**](https://opensea.io/collection/the-peass-family) - प्राप्त करें [**आधिकारिक PEASS & HackTricks 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) में पीआर जमा करके।**