Partitions/File Systems/Carving
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
एक हार्ड ड्राइव या SSD डिस्क में विभिन्न विभाजन हो सकते हैं जिनका उद्देश्य डेटा को भौतिक रूप से अलग करना है। डिस्क की न्यूनतम इकाई सेक्टर है (सामान्यतः 512B का बना होता है)। इसलिए, प्रत्येक विभाजन का आकार उस आकार का गुणांक होना चाहिए।
यह 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)
विभाजन में सेक्टर
Linux में MBR को माउंट करने के लिए, आपको पहले प्रारंभिक ऑफसेट प्राप्त करने की आवश्यकता है (आप fdisk
और p
कमांड का उपयोग कर सकते हैं)
और फिर निम्नलिखित कोड का उपयोग करें
LBA (Logical block addressing)
Logical block addressing (LBA) एक सामान्य योजना है जिसका उपयोग कंप्यूटर स्टोरेज डिवाइसों पर संग्रहीत डेटा के ब्लॉकों के स्थान को निर्दिष्ट करने के लिए किया जाता है, आमतौर पर हार्ड डिस्क ड्राइव जैसे द्वितीयक स्टोरेज सिस्टम। LBA एक विशेष रूप से सरल रैखिक एड्रेसिंग योजना है; ब्लॉक एक पूर्णांक अनुक्रमांक द्वारा स्थित होते हैं, पहले ब्लॉक को LBA 0, दूसरे को LBA 1, और इसी तरह।
GUID Partition Table, जिसे GPT के नाम से जाना जाता है, MBR (Master Boot Record) की तुलना में इसकी उन्नत क्षमताओं के लिए पसंद किया जाता है। विभाजन के लिए वैश्विक अद्वितीय पहचानकर्ता के लिए विशिष्ट, GPT कई तरीकों से अलग है:
स्थान और आकार: GPT और MBR दोनों सेक्टर 0 से शुरू होते हैं। हालाँकि, GPT 64-बिट पर कार्य करता है, जबकि MBR 32-बिट पर।
विभाजन सीमाएँ: GPT Windows सिस्टम पर 128 विभाजनों तक का समर्थन करता है और 9.4ZB डेटा को समायोजित करता है।
विभाजन नाम: 36 Unicode वर्णों तक के साथ विभाजनों को नाम देने की क्षमता प्रदान करता है।
डेटा स्थिरता और पुनर्प्राप्ति:
अतिरिक्तता: MBR के विपरीत, GPT विभाजन और बूट डेटा को एक ही स्थान पर सीमित नहीं करता है। यह इस डेटा को डिस्क पर दोहराता है, डेटा की अखंडता और स्थिरता को बढ़ाता है।
साइक्लिक रेडंडेंसी चेक (CRC): GPT डेटा की अखंडता सुनिश्चित करने के लिए CRC का उपयोग करता है। यह डेटा भ्रष्टाचार की सक्रिय रूप से निगरानी करता है, और जब पता चलता है, तो GPT दूसरे डिस्क स्थान से भ्रष्ट डेटा को पुनर्प्राप्त करने का प्रयास करता है।
सुरक्षात्मक MBR (LBA0):
GPT एक सुरक्षात्मक MBR के माध्यम से पीछे की संगतता बनाए रखता है। यह सुविधा विरासत MBR स्थान में स्थित है लेकिन इसे पुराने MBR-आधारित उपयोगिताओं को गलती से GPT डिस्क को ओवरराइट करने से रोकने के लिए डिज़ाइन किया गया है, इस प्रकार GPT-फॉर्मेटेड डिस्क पर डेटा की अखंडता की रक्षा करता है।
हाइब्रिड MBR (LBA 0 + GPT)
उन ऑपरेटिंग सिस्टम में जो BIOS सेवाओं के माध्यम से GPT-आधारित बूट का समर्थन करते हैं, पहले सेक्टर का उपयोग बूटलोडर कोड के पहले चरण को संग्रहीत करने के लिए भी किया जा सकता है, लेकिन संशोधित किया गया है ताकि GPT विभाजनों को पहचान सके। MBR में बूटलोडर को 512 बाइट्स के सेक्टर आकार का अनुमान नहीं लगाना चाहिए।
विभाजन तालिका शीर्षक (LBA 1)
विभाजन तालिका शीर्षक डिस्क पर उपयोगी ब्लॉकों को परिभाषित करता है। यह विभाजन तालिका (तालिका में ऑफसेट 80 और 84) को बनाने वाले विभाजन प्रविष्टियों की संख्या और आकार को भी परिभाषित करता है।
0 (0x00)
8 bytes
8 (0x08)
4 bytes
Revision 1.0 (00h 00h 01h 00h) for UEFI 2.8
12 (0x0C)
4 bytes
Header size in little endian (in bytes, usually 5Ch 00h 00h 00h or 92 bytes)
16 (0x10)
4 bytes
CRC32 of header (offset +0 up to header size) in little endian, with this field zeroed during calculation
20 (0x14)
4 bytes
Reserved; must be zero
24 (0x18)
8 bytes
Current LBA (location of this header copy)
32 (0x20)
8 bytes
Backup LBA (location of the other header copy)
40 (0x28)
8 bytes
First usable LBA for partitions (primary partition table last LBA + 1)
48 (0x30)
8 bytes
Last usable LBA (secondary partition table first LBA − 1)
56 (0x38)
16 bytes
Disk GUID in mixed endian
72 (0x48)
8 bytes
Starting LBA of an array of partition entries (always 2 in primary copy)
80 (0x50)
4 bytes
Number of partition entries in array
84 (0x54)
4 bytes
Size of a single partition entry (usually 80h or 128)
88 (0x58)
4 bytes
CRC32 of partition entries array in little endian
92 (0x5C)
*
Reserved; must be zeroes for the rest of the block (420 bytes for a sector size of 512 bytes; but can be more with larger sector sizes)
विभाजन प्रविष्टियाँ (LBA 2–33)
Offset
Length
Contents
16 (0x10)
16 bytes
Unique partition GUID (mixed endian)
40 (0x28)
8 bytes
Last LBA (inclusive, usually odd)
48 (0x30)
8 bytes
Attribute flags (e.g. bit 60 denotes read-only)
विभाजन प्रकार
अधिक विभाजन प्रकार https://en.wikipedia.org/wiki/GUID_Partition_Table में
ArsenalImageMounter के साथ फॉरेंसिक इमेज को माउंट करने के बाद, आप Windows टूल Active Disk Editor** का उपयोग करके पहले सेक्टर का निरीक्षण कर सकते हैं।** निम्नलिखित छवि में MBR को सेक्टर 0 पर पता लगाया गया और व्याख्या की गई:
यदि यह MBR के बजाय GPT तालिका होती, तो इसे सेक्टर 1 में EFI PART सिग्नेचर दिखाई देना चाहिए (जो पिछले छवि में खाली है)।
FAT12/16: MSDOS, WIN95/98/NT/200
FAT32: 95/2000/XP/2003/VISTA/7/8/10
ExFAT: 2008/2012/2016/VISTA/7/8/10
NTFS: XP/2003/2008/2012/VISTA/7/8/10
ReFS: 2012/2016
FAT (File Allocation Table) फ़ाइल प्रणाली अपने मुख्य घटक, फ़ाइल आवंटन तालिका के चारों ओर डिज़ाइन की गई है, जो वॉल्यूम की शुरुआत में स्थित है। यह प्रणाली डेटा की सुरक्षा करती है तालिका की दो प्रतियों को बनाए रखकर, यह सुनिश्चित करती है कि यदि एक भ्रष्ट हो जाए तो भी डेटा की अखंडता बनी रहे। तालिका, साथ ही रूट फ़ोल्डर, एक स्थिर स्थान में होनी चाहिए, जो प्रणाली के स्टार्टअप प्रक्रिया के लिए महत्वपूर्ण है।
फ़ाइल प्रणाली की मूल भंडारण इकाई एक क्लस्टर, आमतौर पर 512B है, जिसमें कई सेक्टर शामिल होते हैं। FAT ने संस्करणों के माध्यम से विकास किया है:
FAT12, 12-बिट क्लस्टर पते का समर्थन करता है और 4078 क्लस्टर (UNIX के साथ 4084) को संभालता है।
FAT16, 16-बिट पते में सुधार करता है, जिससे 65,517 क्लस्टर तक का समर्थन होता है।
FAT32, 32-बिट पते के साथ और भी आगे बढ़ता है, जिससे प्रति वॉल्यूम 268,435,456 क्लस्टर की प्रभावशाली संख्या की अनुमति मिलती है।
FAT संस्करणों में एक महत्वपूर्ण सीमा 4GB अधिकतम फ़ाइल आकार है, जो फ़ाइल आकार भंडारण के लिए उपयोग किए गए 32-बिट फ़ील्ड द्वारा निर्धारित है।
रूट निर्देशिका के प्रमुख घटक, विशेष रूप से FAT12 और FAT16 के लिए, में शामिल हैं:
फ़ाइल/फ़ोल्डर नाम (8 वर्णों तक)
गुण
निर्माण, संशोधन, और अंतिम पहुँच तिथियाँ
FAT तालिका पता (फ़ाइल के प्रारंभ क्लस्टर को इंगित करता है)
फ़ाइल आकार
Ext2 सबसे सामान्य फ़ाइल प्रणाली है जो जर्नलिंग विभाजनों (विभाजन जो ज्यादा नहीं बदलते) के लिए है जैसे कि बूट विभाजन। Ext3/4 जर्नलिंग हैं और आमतौर पर बाकी विभाजनों के लिए उपयोग की जाती हैं।
कुछ फ़ाइलों में मेटाडेटा होता है। यह जानकारी फ़ाइल की सामग्री के बारे में होती है जो कभी-कभी विश्लेषक के लिए दिलचस्प हो सकती है क्योंकि फ़ाइल के प्रकार के आधार पर, इसमें जानकारी हो सकती है जैसे:
शीर्षक
उपयोग किया गया MS Office संस्करण
लेखक
निर्माण और अंतिम संशोधन की तिथियाँ
कैमरे का मॉडल
GPS निर्देशांक
छवि जानकारी
आप फ़ाइल के मेटाडेटा प्राप्त करने के लिए exiftool और Metadiver जैसे उपकरणों का उपयोग कर सकते हैं।
जैसा कि पहले देखा गया है, कई स्थान हैं जहाँ फ़ाइल "हटाई गई" होने के बाद भी अभी भी सहेजी गई है। इसका कारण यह है कि आमतौर पर फ़ाइल सिस्टम से फ़ाइल को हटाने से इसे केवल हटाए गए के रूप में चिह्नित किया जाता है लेकिन डेटा को छुआ नहीं जाता। फिर, फ़ाइलों के रजिस्ट्रियों (जैसे MFT) का निरीक्षण करना और हटाई गई फ़ाइलों को खोजना संभव है।
इसके अलावा, OS आमतौर पर फ़ाइल सिस्टम परिवर्तनों और बैकअप के बारे में बहुत सारी जानकारी सहेजता है, इसलिए फ़ाइल को पुनर्प्राप्त करने या यथासंभव अधिक जानकारी प्राप्त करने के लिए उनका उपयोग करने का प्रयास करना संभव है।
File/Data Carving & Recovery ToolsFile carving एक तकनीक है जो डेटा के बड़े हिस्से में फ़ाइलों को खोजने की कोशिश करती है। इस तरह के उपकरणों के काम करने के 3 मुख्य तरीके हैं: फ़ाइल प्रकार के हेडर और फुटर के आधार पर, फ़ाइल प्रकार की संरचनाओं के आधार पर और सामग्री के आधार पर।
ध्यान दें कि यह तकनीक खंडित फ़ाइलों को पुनर्प्राप्त करने के लिए काम नहीं करती। यदि एक फ़ाइल सन्निहित सेक्टरों में संग्रहीत नहीं है, तो यह तकनीक इसे खोजने में असमर्थ होगी या कम से कम इसके एक भाग को।
आप फ़ाइल कार्विंग के लिए कई उपकरणों का उपयोग कर सकते हैं जो आप जिन फ़ाइल प्रकारों के लिए खोज करना चाहते हैं उन्हें इंगित करते हैं।
File/Data Carving & Recovery Toolsडेटा स्ट्रीम कार्विंग फ़ाइल कार्विंग के समान है लेकिन पूर्ण फ़ाइलों की तलाश करने के बजाय, यह जानकारी के दिलचस्प टुकड़ों की तलाश करता है। उदाहरण के लिए, पूर्ण फ़ाइल की तलाश करने के बजाय जिसमें लॉग की गई URL होती हैं, यह तकनीक URL की खोज करेगी।
File/Data Carving & Recovery Toolsस्पष्ट रूप से, फ़ाइलों और उनके बारे में लॉग के कुछ हिस्सों को "सुरक्षित" तरीके से हटाने के तरीके हैं। उदाहरण के लिए, एक फ़ाइल की सामग्री को कई बार बकवास डेटा के साथ ओवरराइट करना संभव है, और फिर फ़ाइल के बारे में $MFT और $LOGFILE से लॉग को हटाना, और वॉल्यूम शैडो कॉपीज़ को हटाना। आप देख सकते हैं कि इस क्रिया को करने पर भी फ़ाइल के अस्तित्व को लॉग करने के लिए अन्य भाग हो सकते हैं, और यह सच है और फॉरेंसिक पेशेवर का काम उन्हें खोजना है।
iHackLabs Certified Digital Forensics Windows
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)