Re: [sleuthkit-users] confusing file that does not have 0 bytes
Brought to you by:
carrier
From: Alex N. <ajn...@cs...> - 2014-02-01 20:11:36
|
Hi Simson, The NTFS $Secure file is a weird one. Its primary data is stored in the $DATA attribute with the name $SDS, and $SDH and $SII are two $INDEX attributes for the same file. I think there are a couple other NTFS special files that have multiple indices like this; there are definitely files with non-standard indices. Normally, the default, unnamed data attribute of a file would supply the content that Fiwalk would hash. In the case of $Secure, that attribute is in fact 0-length. (Absent, even, according to your istat.) The real data of $Secure is in the named data stream "$Secure:$SDS". Fiwalk and DFXML don't presently have a way to express that aside from making a whole different fileobject; so, $Secure would be a 0-length file, $Secure:$SDS would be a 1.9MB (for you) file. Right now, Fiwalk is just quietly hashing the content of $Secure:$SDS; I forget if there's an explicit check for that or it's a side-effect of something. There is further expression weirdness if you want to express $Secure:$SDH or $Secure:$SII, since those aren't technically content, they're indices. I've been thinking about how to express those in DFXML for a while, because the problem also arises for named data streams in general. What's the hash of a file with multiple data streams? I hope you'll agree that there should be one hash per stream, instead of one hash per file. I think the best way to approach this problem is to define a new child element of a <fileobject>, a named data stream (I think it's abbreviated NDS in the Carrier book; it's "Alternate" data stream elsewhere). So, in $Secure's case: <fileobject> <filename>$Secure</filename> <ntfs:nds> <tsk:icat_id>9-128-11</tsk:icat_id> <parent_object> <inode>9</inode> </parent_object> <filename>$SDS</filename> <byte_runs><!--As expected...--></byte_runs> <hashdigest type="sha1">1234abcd...</hashdigest> </ntfs:nds> </fileobject> The name data stream elements would be a subset of the <fileobject> elements. Similarly, there can be elements for the NTFS index root and index allocation attributes, which would also be children of a fileobject. <ntfs:index_root> <tsk:icat_id>9-144-12</tsk:icat_id> <parent_object> <inode>9</inode> </parent_object> <filename>$SII</filename> <byte_runs><!--The resident data in the MFT entry's attribute; will take some engineering to get this right, I think--></byte_runs> <hashdigest type="sha1">5678...</hashdigest> </ntfs:index_root> <ntfs:index_allocation> <tsk:icat_id>9-160-13</tsk:icat_id> <parent_object> <inode>9</inode> </parent_object> <filename>$SII</filename> <byte_runs><!--Of the index clusters--></byte_runs> <hashdigest type="sha1">9abc...</hashdigest> </ntfs:index_allocation> This approach wouldn't require changes to the DFXML schema. Do you think this solves the problem of extra indices and data streams for NTFS? --Alex On Fri, Jan 31, 2014 at 9:38 PM, Simson Garfinkel <si...@ac...> wrote: > > I have an NTFS disk image. There is a file on it that the SleuthKit > reports has 0 length. But fiwalk reports that it has several byte runs. > Currently fiwalk is computing the hash of those byte runs and reporting it > as the file hash, which is the wrong behavior. > > Below is the istat, followed by the XML dump and also the fls output. It > looks to me that there are several attributes; one of them, the $SDS > attribute, is 1.9MB in length. > > Clearly the attributes should not be hashed to determine the file's > hash, so there is a bug in fiwalk that I need to fix. From the API, how do > I determine that the data callback is being given an attribute that > shouldn't be hashed? > > Here is the relevant part of the directory list with fls: > > r/r * 9-144-16(realloc): title_ctr[1].gif:$SDH > r/r * 9-144-18(realloc): title_ctr[1].gif:$SII > r/r * 9-128-19(realloc): title_ctr[1].gif:$SDS > > > > Here is the istat: > > $ istat -o 63 SG1-1064.E01 9-144-16 > MFT Entry Header Values: > Entry: 9 Sequence: 9 > $LogFile Sequence Number: 586416701932 > Allocated File > Links: 1 > > $STANDARD_INFORMATION Attribute Values: > Flags: Hidden, System > Owner ID: 0 > Security ID: 257 (S-1-5-32-544) > Created: 2004-07-12 16:58:51 (EDT) > File Modified: 2004-07-12 16:58:51 (EDT) > MFT Modified: 2004-07-12 16:58:51 (EDT) > Accessed: 2004-07-12 16:58:51 (EDT) > > $FILE_NAME Attribute Values: > Flags: > Name: $Secure > Parent MFT Entry: 5 Sequence: 5 > Allocated Size: 0 Actual Size: 0 > Created: 2076-11-29 03:54:34 (EST) > File Modified: 2076-11-29 03:54:34 (EST) > MFT Modified: 2076-11-29 03:54:34 (EST) > Accessed: 2076-11-29 03:54:34 (EST) > > $ATTRIBUTE_LIST Attribute Values: > Type: 16-0 MFT Entry: 9 VCN: 0 > Type: 48-7 MFT Entry: 9 VCN: 0 > Type: 128-0 MFT Entry: 178770 VCN: 0 > Type: 144-16 MFT Entry: 9 VCN: 0 > Type: 144-18 MFT Entry: 9 VCN: 0 > Type: 160-2 MFT Entry: 6781 VCN: 0 > Type: 160-3 MFT Entry: 6781 VCN: 0 > Type: 176-4 MFT Entry: 6781 VCN: 0 > Type: 176-5 MFT Entry: 6781 VCN: 0 > > Attributes: > Type: $STANDARD_INFORMATION (16-0) Name: N/A Resident size: 72 > Type: $ATTRIBUTE_LIST (32-17) Name: N/A Non-Resident size: 344 > init_size: 344 > 549297 > Type: $FILE_NAME (48-7) Name: N/A Resident size: 80 > Type: $INDEX_ROOT (144-16) Name: $SDH Resident size: 56 > Type: $INDEX_ROOT (144-18) Name: $SII Resident size: 56 > Type: $DATA (128-19) Name: $SDS Non-Resident size: 1960040 > init_size: 1960040 > 390176 390177 390178 390179 390180 390181 390182 390183 > 390184 390185 390186 390187 390188 390189 390190 390191 > 390192 390193 390194 390195 390196 390197 390198 390199 > 390200 390201 390202 390203 390204 390205 390206 390207 > 390208 390209 390210 390211 390212 390213 390214 390215 > 390216 390217 390218 390219 390220 390221 390222 390223 > 390224 390225 390226 390227 390228 390229 390230 390231 > 390232 390233 390234 390235 390236 390237 390238 390239 > 390240 487278 487279 663659 638527 481604 79306 706903 > 785371 9883 610353 610355 610371 610270 600412 619380 > 596219 569580 699395 717528 368206 370944 482186 489621 > 531746 532353 6076591 6060120 7432272 7403576 7402093 7400205 > 6386639 6424782 6425853 6308043 6542545 6496155 6556126 6624373 > 6899574 6900049 7130039 7125434 7125816 7142050 7140859 7137126 > 7133695 7133209 7132301 7131597 7131365 7131351 7126255 7125530 > 7124837 7124653 7123341 7132208 8324618 8611460 9711057 3778491 > 7299721 7299722 7299723 7299724 7299725 7299726 7299727 7299728 > 7299729 7299730 7299731 7299732 7299733 7299734 7299735 7299736 > 7299737 7299738 7299739 7299740 7299741 7299742 7299743 7299744 > 7299745 7299746 7299747 7299748 7299749 7299750 7299751 7299752 > 7299753 7299754 7299755 7299756 7299757 7299758 7299759 7299760 > 7299761 7299762 7299763 7299764 7299765 7299766 7299767 7299768 > 7299769 7299770 7299771 7299772 7299773 7299774 7299775 7299776 > 7299777 7299778 7299779 7299780 7299781 7299782 7299783 7299784 > 7299785 6678550 4855356 3758831 3758828 3758502 3758435 3757936 > 3757899 3757896 3758437 3764874 3764875 3772231 3381010 3373829 > 3354308 3373799 3066264 3050316 3050323 3639068 3579136 5890982 > 5005380 5391161 744788 744567 742412 2521794 2544838 2544980 > 2545877 2547574 2547572 5537845 5427693 5390572 5281512 5274421 > 5274391 5005604 5005540 4996110 4996004 4919745 4810409 4810410 > 4810411 4806319 4818401 4835951 7299630 7410654 7380435 6777589 > 7518578 3611101 3765721 3765626 3765627 3768851 3744748 3732304 > 3465268 3465269 3465270 3465271 3465272 3465273 3465274 3465275 > 3465276 3465277 3465278 3465279 3465280 3465281 3465282 3465283 > 3465284 3465285 3465286 3465287 3465288 3465289 3465290 3465291 > 3465292 3465293 3465294 3465295 3465296 3465297 3465298 3465299 > 3465300 3465301 3465302 3465303 3465304 3465305 3465306 3465307 > 3465308 3465309 3465310 3465311 3465312 3465313 3465314 3465315 > 3465316 3465317 3465318 3465319 3465320 3465321 3465322 3465323 > 3465324 3465325 3465326 3465327 3465328 3465329 3465330 3465331 > 3465332 3466493 4851942 296156 3420790 3421259 3421441 3421592 > 3421723 3400696 3400697 3400698 3400699 3400700 3400701 3400702 > 3400703 3400704 3400705 3400665 3403006 3403025 3403181 3404423 > 3406406 3406408 3393559 3385169 3379651 3370783 3368782 3368665 > 3366669 3350989 3350453 3350833 3353678 3342048 3341341 3333236 > 3333234 3333000 3331552 3331254 3331241 3330349 3328982 3328912 > 3328910 3328053 3327416 3327413 3327387 3322469 3321112 3311241 > 3304448 3302498 3300538 3300466 3294442 3294089 3291273 3286158 > 3734663 3734664 3734665 3734666 3734667 3734668 3734669 3734670 > 3734671 3734672 3734673 3734674 3734675 3734676 3734677 3734678 > 3734679 3734680 3734681 3734682 3734683 3734684 3734685 3734686 > 3734687 3734688 3734689 3734690 3734691 3734692 3734693 3734694 > 3734695 3734696 3734697 3734698 3734699 3734700 3734701 3734702 > 3734703 3734704 3734705 3734706 3734707 3734708 3734709 3734710 > 3734711 3734712 3734713 3734714 3734715 3734716 3734717 3734718 > 3734719 3734720 3734721 3734722 3734723 3734724 3734725 3734726 > 3734727 3732144 3730026 3730023 3729973 3727747 3727641 3727639 > 3727631 3727124 3727103 3726877 3726430 3726011 3720147 3720217 > 3720248 3722010 3722064 3722169 3725802 3748438 3756656 798823 > 780465 520279 148378 378527 355345 346371 346370 > Type: $INDEX_ALLOCATION (160-20) Name: $SDH Non-Resident size: > 262144 init_size: 262144 > 78369 610316 610317 610318 610319 700617 700640 695953 > 690523 692402 1262355 1262344 4855163 4855576 4855596 4853877 > 4858975 3784815 3762045 3764806 3757945 3757507 366474 7299002 > 7299012 7298974 3293690 5912759 5915587 5916360 5917039 3758551 > 3778787 3778785 4850977 4851160 4850782 4851841 4852120 4849070 > 4847515 4845527 4845314 4844785 4844745 4842047 4841786 4841724 > 4837114 4837045 3772243 3761602 378528 616442 618862 756370 > 756371 756372 756373 756374 756375 756376 756377 756378 > Type: $INDEX_ALLOCATION (160-21) Name: $SII Non-Resident size: > 249856 init_size: 249856 > 511627 478499 1175609 610352 663398 570363 164501 312115 > 6076594 616643 752222 306845 548567 549279 549339 687886 > 797375 798538 798352 799153 799352 799355 799361 787025 > 755996 1589868 1589999 792974 8310299 8306866 8306894 8305736 > 1583227 1592148 1592149 3532863 3532864 3533327 4017458 4017459 > 4017460 4017461 4017462 4017437 4017505 4017509 4017511 4017272 > 4017261 4017457 4016963 4016617 4016615 4016372 4016962 4017433 > 4017435 4015948 3772658 1245269 1010788 > Type: $BITMAP (176-22) Name: $SDH Resident size: 16 > Type: $BITMAP (176-23) Name: $SII Resident size: 8 > > > > Here is the XML that fiwalk dumps: > > <fileobject> > <filename>Documents and Settings/*******/Local Settings/Temporary > Internet Files/Content.IE5/89MRS52V/title_ctr[1].gif</filename> > <partition>1</partition> > <id>162982</id> > <name_type>r</name_type> > <filesize>0</filesize> > <alloc>1</alloc> > <used>1</used> > <inode>9</inode> > <meta_type>1</meta_type> > <mode>365</mode> > <nlink>1</nlink> > <uid>0</uid> > <gid>0</gid> > <mtime>2004-07-12T20:58:51Z</mtime> > <ctime>2004-07-12T20:58:51Z</ctime> > <atime>2004-07-12T20:58:51Z</atime> > <crtime>2004-07-12T20:58:51Z</crtime> > <seq>9</seq> > <byte_runs> > <byte_run file_offset='0' fs_offset='1598160896' > img_offset='1598193152' len='266240'/> > <byte_run file_offset='266240' fs_offset='1995890688' > img_offset='1995922944' len='8192'/> > <byte_run file_offset='274432' fs_offset='2718347264' > img_offset='2718379520' len='4096'/> > <byte_run file_offset='278528' fs_offset='2615406592' > img_offset='2615438848' len='4096'/> > <byte_run file_offset='282624' fs_offset='1972649984' > img_offset='1972682240' len='4096'/> > <byte_run file_offset='286720' fs_offset='324837376' > img_offset='324869632' len='4096'/> > ... > <byte_run file_offset='1953792' fs_offset='1418735616' > img_offset='1418767872' len='4096'/> > <byte_run file_offset='1957888' fs_offset='1418731520' > img_offset='1418763776' len='2152'/> > </byte_runs> > <hashdigest type='md5'>14e29e689be66747926c29e7b6d8da1c</hashdigest> > <hashdigest > type='sha1'>4755f96f4cc83ab7bf8827d361e2d66d1086f0cf</hashdigest> > </fileobject> > > > > > > > ------------------------------------------------------------------------------ > WatchGuard Dimension instantly turns raw network data into actionable > security intelligence. It gives you real-time visual feedback on key > security issues and trends. Skip the complicated setup - simply import > a virtual appliance and go from zero to informed in seconds. > > http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk > _______________________________________________ > sleuthkit-users mailing list > https://lists.sourceforge.net/lists/listinfo/sleuthkit-users > http://www.sleuthkit.org > > |