.. | ||
ext.md | ||
file-data-carving-recovery-tools.md | ||
file-data-carving-tools.md | ||
ntfs.md | ||
README.md |
पार्टीशन/फाइल सिस्टम/कार्विंग
पार्टीशन/फाइल सिस्टम/कार्विंग
htARTE (HackTricks AWS Red Team Expert) के साथ AWS हैकिंग सीखें
HackTricks का समर्थन करने के अन्य तरीके:
- यदि आप अपनी कंपनी का विज्ञापन HackTricks में देखना चाहते हैं या HackTricks को PDF में डाउनलोड करना चाहते हैं, तो सब्सक्रिप्शन प्लान्स देखें!
- आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें
- The PEASS Family की खोज करें, हमारा एक्सक्लूसिव NFTs संग्रह
- 💬 Discord group में शामिल हों या telegram group में या Twitter पर 🐦 @carlospolopm को फॉलो करें.
- HackTricks और HackTricks Cloud github repos में PRs सबमिट करके अपनी हैकिंग ट्रिक्स शेयर करें.
पार्टीशन
एक हार्ड ड्राइव या SSD डिस्क में विभिन्न पार्टीशन हो सकते हैं जिसका उद्देश्य डेटा को भौतिक रूप से अलग करना है।
डिस्क की न्यूनतम इकाई सेक्टर होती है (आमतौर पर 512B की संरचना में)। इसलिए, प्रत्येक पार्टीशन का आकार उस आकार का गुणज होना चाहिए।
MBR (मास्टर बूट रिकॉर्ड)
यह डिस्क के पहले सेक्टर में 446B बूट कोड के बाद स्थित होता है। यह सेक्टर पीसी को यह इंगित करने के लिए आवश्यक है कि किस पार्टीशन को कहां से माउंट किया जाना चाहिए।
यह 4 पार्टीशन तक की अनुमति देता है (अधिकतम केवल 1 सक्रिय/बूटेबल हो सकता है)। हालांकि, यदि आपको अधिक पार्टीशन की आवश्यकता है तो आप विस्तारित पार्टीशन का उपयोग कर सकते हैं। इस पहले सेक्टर का अंतिम बाइट बूट रिकॉर्ड हस्ताक्षर 0x55AA है। केवल एक पार्टीशन को सक्रिय के रूप में चिह्नित किया जा सकता है।
MBR अधिकतम 2.2TB की अनुमति देता है।
MBR के बाइट्स 440 से 443 में आप Windows डिस्क सिग्नेचर पा सकते हैं (यदि Windows का उपयोग किया जा रहा है)। हार्ड डिस्क के लॉजिकल ड्राइव लेटर का निर्धारण Windows डिस्क सिग्नेचर पर निर्भर करता है। इस सिग्नेचर को बदलने से Windows का बूट होना रोका जा सकता है (टूल: Active Disk Editor)।
फॉर्मेट
ऑफसेट | लंबाई | आइटम |
---|---|---|
0 (0x00) | 446(0x1BE) | बूट कोड |
446 (0x1BE) | 16 (0x10) | पहला पार्टीशन |
462 (0x1CE) | 16 (0x10) | दूसरा पार्टीशन |
478 (0x1DE) | 16 (0x10) | तीसरा पार्टीशन |
494 (0x1EE) | 16 (0x10) | चौथा पार्टीशन |
510 (0x1FE) | 2 (0x2) | हस्ताक्षर 0x55 0xAA |
पार्टीशन रिकॉर्ड फॉर्मेट
ऑफसेट | लंबाई | आइटम |
---|---|---|
0 (0x00) | 1 (0x01) | सक्रिय ध्वज (0x80 = बूटेबल) |
1 (0x01) | 1 (0x01) | प्रारंभ सिर |
2 (0x02) | 1 (0x01) | प्रारंभ सेक्टर (बिट्स 0-5); सिलेंडर के ऊपरी बिट्स (6- 7) |
3 (0x03) | 1 (0x01) | प्रारंभ सिलेंडर के निचले 8 बिट्स |
4 (0x04) | 1 (0x01) | पार्टीशन प्रकार कोड (0x83 = Linux) |
5 (0x05) | 1 (0x01) | अंत सिर |
6 (0x06) | 1 (0x01) | अंत सेक्टर (बिट्स 0-5); सिलेंडर के ऊपरी बिट्स (6- 7) |
7 (0x07) | 1 (0x01) | अंत सिलेंडर के निचले 8 बिट्स |
8 (0x08) | 4 (0x04) | पार्टीशन से पहले के सेक्टर (लिटिल एंडियन) |
12 (0x0C) | 4 (0x04) | पार्टीशन में सेक्टर |
MBR को Linux में माउंट करने के लिए आपको पहले प्रारंभ ऑफसेट प्राप्त करना होगा (आप fdisk
और p
कमांड का उपयोग कर सकते हैं)
और फिर निम्नलिखित कोड का उपयोग करें
#Mount MBR in Linux
mount -o ro,loop,offset=<Bytes>
#63x512 = 32256Bytes
mount -o ro,loop,offset=32256,noatime /path/to/image.dd /media/part/
LBA (Logical block addressing)
लॉजिकल ब्लॉक एड्रेसिंग (LBA) एक सामान्य योजना है जिसका उपयोग कंप्यूटर स्टोरेज डिवाइसेस पर संग्रहीत डेटा के ब्लॉक्स के स्थान को निर्दिष्ट करने के लिए किया जाता है, आमतौर पर सेकेंडरी स्टोरेज सिस्टम्स जैसे हार्ड डिस्क ड्राइव्स। LBA एक विशेष सरल रैखिक एड्रेसिंग योजना है; ब्लॉक्स को एक पूर्णांक सूचकांक द्वारा स्थित किया जाता है, पहला ब्लॉक LBA 0 होता है, दूसरा LBA 1, और इसी तरह।
GPT (GUID Partition Table)
इसे GUID Partition Table इसलिए कहा जाता है क्योंकि आपकी ड्राइव पर हर पार्टीशन का एक वैश्विक अद्वितीय पहचानकर्ता होता है।
MBR की तरह यह भी सेक्टर 0 में शुरू होता है। MBR 32bits का होता है जबकि GPT 64bits का उपयोग करता है।
GPT Windows में 128 पार्टीशनों तक की अनुमति देता है और 9.4ZB तक।
साथ ही, पार्टीशनों का 36 अक्षरों का यूनिकोड नाम हो सकता है।
MBR डिस्क पर, पार्टीशनिंग और बूट डेटा एक ही स्थान पर संग्रहीत होते हैं। यदि यह डेटा अधिलेखित या दूषित हो जाता है, तो आप मुसीबत में हैं। इसके विपरीत, GPT डिस्क पर इस डेटा की कई प्रतियां संग्रहीत करता है, इसलिए यह बहुत अधिक मजबूत है और यदि डेटा दूषित हो जाता है तो वह डिस्क पर अन्य स्थान से दूषित डेटा की वसूली करने का प्रयास कर सकता है।
GPT यह भी संग्रहीत करता है साइक्लिक रिडंडेंसी चेक (CRC) मान ताकि यह जांच सके कि इसका डेटा अखंड है। यदि डेटा दूषित हो जाता है, तो GPT समस्या को नोटिस कर सकता है और डिस्क पर अन्य स्थान से दूषित डेटा की वसूली का प्रयास कर सकता है।
Protective MBR (LBA0)
सीमित पिछड़े संगतता के लिए, GPT विनिर्देशन में पारंपरिक MBR का स्थान अभी भी आरक्षित है, लेकिन अब इसका उपयोग एक तरीके से किया जाता है जो MBR-आधारित डिस्क उपयोगिताओं को GPT डिस्क को गलत पहचानने और संभवतः अधिलेखित करने से रोकता है। इसे प्रोटेक्टिव MBR कहा जाता है।
Hybrid MBR (LBA 0 + GPT)
उन ऑपरेटिंग सिस्टमों में जो BIOS सेवाओं के माध्यम से GPT-आधारित बूट का समर्थन करते हैं बजाय EFI के, पहले सेक्टर का उपयोग भी पहले चरण के बूटलोडर कोड को संग्रहीत करने के लिए किया जा सकता है, लेकिन संशोधित किया गया है ताकि GPT पार्टीशनों को पहचान सके। MBR में बूटलोडर को 512 बाइट्स के सेक्टर आकार की मान्यता नहीं करनी चाहिए।
Partition table header (LBA 1)
पार्टीशन टेबल हेडर डिस्क पर उपयोगी ब्लॉक्स को परिभाषित करता है। यह पार्टीशन टेबल का हिस्सा बनाने वाले पार्टीशन प्रविष्टियों की संख्या और आकार को भी परिभाषित करता है (टेबल में 80 और 84 ऑफसेट)।
Offset | Length | Contents |
---|---|---|
0 (0x00) | 8 bytes | हस्ताक्षर ("EFI PART", 45h 46h 49h 20h 50h 41h 52h 54h या 0x5452415020494645ULL लिटिल-एंडियन मशीनों पर) |
8 (0x08) | 4 bytes | संशोधन 1.0 (00h 00h 01h 00h) UEFI 2.8 के लिए |
12 (0x0C) | 4 bytes | हेडर आकार लिटिल एंडियन में (बाइट्स में, आमतौर पर 5Ch 00h 00h 00h या 92 बाइट्स) |
16 (0x10) | 4 bytes | हेडर का CRC32 (ऑफसेट +0 से हेडर आकार तक) लिटिल एंडियन में, इस क्षेत्र को गणना के दौरान शून्य किया गया है |
20 (0x14) | 4 bytes | आरक्षित; शून्य होना चाहिए |
24 (0x18) | 8 bytes | वर्तमान LBA (इस हेडर प्रति का स्थान) |
32 (0x20) | 8 bytes | बैकअप LBA (दूसरे हेडर प्रति का स्थान) |
40 (0x28) | 8 bytes | पार्टीशनों के लिए पहला उपयोगी LBA (प्राथमिक पार्टीशन टेबल अंतिम LBA + 1) |
48 (0x30) | 8 bytes | अंतिम उपयोगी LBA (द्वितीयक पार्टीशन टेबल पहला LBA − 1) |
56 (0x38) | 16 bytes | डिस्क GUID मिश्रित एंडियन में |
72 (0x48) | 8 bytes | पार्टीशन प्रविष्टियों की एक सरणी का प्रारंभिक LBA (हमेशा प्राथमिक प्रति में 2) |
80 (0x50) | 4 bytes | सरणी में पार्टीशन प्रविष्टियों की संख्या |
84 (0x54) | 4 bytes | एकल पार्टीशन प्रविष्टि का आकार (आमतौर पर 80h या 128) |
88 (0x58) | 4 bytes | पार्टीशन प्रविष्टियों की सरणी का CRC32 लिटिल एंडियन में |
92 (0x5C) | * | आरक्षित; ब्लॉक के बाकी के लिए शून्य होना चाहिए (512 बाइट्स के सेक्टर आकार के लिए 420 बाइट्स; लेकिन बड़े सेक्टर आकारों के साथ अधिक हो सकता है) |
Partition entries (LBA 2–33)
GUID पार्टीशन प्रविष्टि प्रारूप | ||
---|---|---|
Offset | Length | Contents |
0 (0x00) | 16 bytes | पार्टीशन प्रकार GUID (मिश्रित एंडियन) |
16 (0x10) | 16 bytes | अद्वितीय पार्टीशन GUID (मिश्रित एंडियन) |
32 (0x20) | 8 bytes | पहला LBA (लिटिल एंडियन) |
40 (0x28) | 8 bytes | अंतिम LBA (समावेशी, आमतौर पर विषम) |
48 (0x30) | 8 bytes | विशेषता ध्वज (उदाहरण के लिए बिट 60 का अर्थ है पढ़ने के लिए केवल) |
56 (0x38) | 72 bytes | पार्टीशन नाम (36 UTF-16LE कोड इकाइयाँ) |
Partitions Types
अधिक पार्टीशन प्रकार https://en.wikipedia.org/wiki/GUID_Partition_Table में
Inspecting
ArsenalImageMounter के साथ फोरेंसिक इमेज को माउंट करने के बाद, आप पहले सेक्टर का निरीक्षण Active Disk Editor विंडोज टूल का उपयोग करके कर सकते हैं। निम्नलिखित छवि में MBR को सेक्टर 0 पर पता चला और व्याख्या की गई:
यदि यह MBR के बजाय GPT टेबल होता, तो सेक्टर 1 में हस्ताक्षर EFI PART दिखाई देना चाहिए था (जो पिछली छवि में खाली है)।
File-Systems
Windows file-systems list
- FAT12/16: MSDOS, WIN95/98/NT/200
- FAT32: 95/2000/XP/2003/VISTA/7/8/10
- ExFAT: 2008/2012/