USB Flashdisk Forensic (Advanced)

Sore ini saya dihubungi oleh seorang teman yang mengirimkan sebuah file image dari sebuah flashdisk. Beliau meminta saya untuk melakukan analisa terhadap file tersebut. Flashdisk tersebut berisi beberapa file, baik yang masih dapat dibaca maupun yang telah terhapus. Hints nya, semua file yang ada, baik yang telah terhapus maupun yang belum terhapus, sengaja dikacau struktur file systemnya, sehingga tidak akan terbaca secara normal. Selain itu, struktur filesystem dari flashdisk juga telah diacak menjadi tidak normal. Berhubung saya menggunakan Linux, maka kali ini saya akan menggunakan aplikasi berbasis open source untuk melakukan analisa. Resiko yang akan saya hadapi adalah, pengerjakan akan menjadi semi manual dan perhitungan matematis mau tidak mau harus saya lakukan pula (secara manual), duh. Baik, silahkan duduk yang tenang dan membaca tulisan ini sampai selesai, Jika ada yang tidak anda mengerti, silahkan bertanya pada dosen sistem berkas (file system) yang ada dikampus anda. Welcome to my world ūüôā (It tooks almost 9 hours for me to finish the case.. gee) Pertama saya coba kumpulkan informasi seputar usb image.

root@bt:/media/oldcaine# fsstat usbkey.img
 FILE SYSTEM INFORMATION
 --------------------------------------------
 File System Type: FAT16OEM Name: MSDOS5.0
 Volume ID: 0xdc8c29fe
 Volume Label (Boot Sector): NO NAME
 Volume Label (Root Directory):
 File System Type Label: FAT16Sectors before file system: 42File System Layout (in sectors)
 Total Range: 0 - 48971
 * Reserved: 0 - 3
 ** Boot Sector: 0
 * FAT 0: 4 - 193
 * FAT 1: 194 - 383
 * Data Area: 384 - 48971
 ** Root Directory: 384 - 415
 ** Cluster Area: 416 - 48971

METADATA INFORMATION
 --------------------------------------------
 Range: 2 - 777414
 Root Directory: 2

CONTENT INFORMATION
 --------------------------------------------
 Sector Size: 512
 Cluster Size: 512
 Total Cluster Range: 2 - 48557

FAT CONTENTS (in sectors)
 --------------------------------------------
 456-486 (31) -> EOF
 487-491 (5) -> EOF
 root@bt:/media/oldcaine

dari informasi yang ada kita tahu bahwa :
partisi menggunakan FAT16
cluster nya berukuran 512 byte
FAT 0 ada di posisi byte 2048 -> krn dimulai dari 4, jadi 4 x 512 byte
FAT 1 ada di posisi byte 99328
ROOT dir nya ada di byte 196608

setiap cluster terdiri atas 2 byte = 16bit = FAT16

kemudian coba untuk melihat, file apa saja yang ada di dalam image


root@bt:/media/oldcaine# fls /media/oldcaine/usbkey.img
 r/r * 5:        _IMMYJ~1.DOC <-- * tanda file di delete, didukung ada character 0xE5 yaitu _
 r/r 8:  cover page.jpg <-- ada metadata FAT directory entry nya 8
 r/r 11: Scheduled Visits.exe <-- di posisi 11
 v/v 777411:     $MBR
 v/v 777412:     $FAT1
 v/v 777413:     $FAT2
 d/d 777414:     $OrphanFiles
 root@bt:/media/oldcaine#

menggunakan istat saya coba lihat metadata yang ada, mulai dari dg alamat 5


root@bt:/media/oldcaine# istat /media/oldcaine/usbkey.img 5
 Directory Entry: 5
 Not Allocated
 File Attributes: File, Archive
 Size: 20480
 Name: _IMMYJ~1.DOC

Directory Entry Times:
 Written:        Mon Apr 15 14:42:30 2002
 Accessed:       Wed Sep 11 00:00:00 2002
 Created:        Wed Sep 11 08:49:48 2002

Sectors:
 416 417 418 419 420 421 422 423
 424 425 426 427 428 429 430 431
 432 433 434 435 436 437 438 439
 440 441 442 443 444 445 446 447
 448 449 450 451 452 453 454 455
 root@bt:/media/oldcaine#

sekarang saya coba untuk me recovery file _IMMYJ~1.DOC nya. Sedikit teori, untuk setiap allocated cluster, 2 byte yang ada di setiap entry cluster berisi nilai dari alamt cluster berikutnya, jadi di nilai cluster yg ada di FAT Dir Entry akan berisi 1st cluster dari file. (ada di bukunya brian), looping cluster akan di akhiri dengan 0xFFFF. Sekarang saya coba akses ke ROOT Dir (FAT Dir Entry?) nya, dg menghitung clusternya, berarti ada di byte 196608, saya pakai hexa editor


root@bt:/media/oldcaine# xxd -s 196608 usbkey.img | more
 0030000: e564 006f 0063 0000 00ff ff00 00bc ffff  .d.o.c..........
 0030010: ffff ffff ffff ffff ffff 0000 ffff ffff  ................
 0030020: e54a 0069 006d 006d 0079 0000 00bc 2000  .J.i.m.m.y.... .
 0030030: 4a00 7500 6e00 6700 6c00 0000 6500 2e00  J.u.n.g.l...e...
 0030040: e549 4d4d 594a 7e31 444f 4320 0068 3846  .IMMYJ~1DOC .h8F
 0030050: 2b2d 2b2d 0000 4f75 8f2c 0200 0050 0000  +-+-..Ou.,...P..
 0030060: 4267 0000 00ff ffff ffff ff0f 00f4 ffff  Bg..............
 0030070: ffff ffff ffff ffff ffff

posisi ada di file yang terhapus. jika dilihat ke FAT cluster entry point / primary FAT (ada di byte ke 2048 –&gt; FAT 0)


root@bt:/media/oldcaine# xxd -s 2048 usbkey.img | more
 0000800: f8ff ffff 0000 0000 0000 0000 0000 0000  ................
 0000810: 0000 0000 0000 0000 0000 0000 0000 0000  ................
 0000820: 0000 0000 0000 0000 0000 0000 0000 0000  ................
 0000830: 0000 0000 0000 0000 0000 0000 0000 0000  ................
 0000840: 0000 0000 0000 0000 0000 0000 0000 0000  ................
 0000850: 0000 0000 2b00 2c00 2d00 2e00 2f00 3000  ....

file tidak ada, krn 00 00 semua. sekarang saya coba untuk masuk ke ROOT Dir nya lagi.


root@bt:/media/oldcaine# xxd -s 196608 usbkey.img | more
 0030000: e564 006f 0063 0000 00ff ff00 00bc ffff  .d.o.c..........
 0030010: ffff ffff ffff ffff ffff 0000 ffff ffff  ................
 0030020: e54a 0069 006d 006d 0079 0000 00bc 2000  .J.i.m.m.y.... .
 0030030: 4a00 7500 6e00 6700 6c00 0000 6500 2e00  J.u.n.g.l...e...
 0030040: e549 4d4d 594a 7e31 444f 4320 0068 3846  .IMMYJ~1DOC .h8F
 0030050: 2b2d 2b2d 0000 4f75 8f2c 0200 0050 0000  +-+-..Ou.,...P..
 0030060: 4267 0000 00ff ffff ffff ff0f 00f4 ffff  Bg..............
 0030070: ffff ffff ffff ffff ffff

jika balik ke teori seputar FAT, maka kita tahu kalau awal filesector ada di 0x30040,

0030040: e549 4d4d 594a 7e31 444f 4320 0068 3846  .IMMYJ~1DOC .h8F ,

jika merujuk ke tabel FAT filesystem, jika ukuran file 20480

0030050: 2b2d 2b2d 0000 4f75 8f2c 0200 0050 0000¬† +-+-..Ou.,…P.. &lt;— 0x0050000 = 20480 ,sama dg hasil istat. saya coba replace karakter _ atau 0xE5 (yg menurut FAT dir table, adalah awal file yg terhapus)

skrg jika saya masuk ke awal DIR ROOT


0030000: e564 006f 0063 0000 00ff ff00 00bc ffff  .d.o.c..........
0030010: ffff ffff ffff ffff ffff 0000 ffff ffff  ................
0030020: e54a 0069 006d 006d 0079 0000 00bc 2000  .J.i.m.m.y.... .
0030030: 4a00 7500 6e00 6700 6c00 0000 6500 2e00  J.u.n.g.l...e...
0030040: 4a49 4d4d 594a 7e31 444f 4320 0068 3846  JIMMYJ~1DOC .h8F
0030050: 2b2d 2b2d 0000 4f75 8f2c 0200 0050 0000  +-+-..Ou.,...P..
0030060: 4267 0000 00ff ffff ffff

0xE5 saya ganti dengan 0x4A atau J. sekarang saya mau bandingkan antara sebelum diubah dan setelah Entry dir saya ubah (dg mount ke file image), Filename nya mmg tidak saya gunakan standar 8.3 filename, krn akan ada teknik lain lagi.

sebelum :


root@bt:/media/oldcaine# mount usb_GCFA_case/usbkey.img /mnt/usb/ -o ro,noatime,loop
root@bt:/media/oldcaine# ls /mnt/usb/
Scheduled Visits.exe  cover page.jpg
root@bt:/media/oldcaine# ls -al /mnt/usb/
total 37
drwxrwxrwx 2 root root 16384 Jan  1  1970 .
drwxr-xr-x 3 root root  4096 May 10  2009 ..
-rwxr-xr-x 1 root root  1000 May 24  2002 Scheduled Visits.exe
-rwxr-xr-x 1 root root 15585 Sep 11  2002 cover page.jpg
root@bt:/media/oldcaine#

setelah diubah start entry nya


root@bt:/media/oldcaine# mount usbkey.img /mnt/usb/ -o ro,noatime,loop
root@bt:/media/oldcaine# ls -al /mnt/usb/
total 57
drwxrwxrwx 2 root root 16384 Jan  1  1970 .
drwxr-xr-x 3 root root  4096 May 10  2009 ..
-rwxr-xr-x 1 root root  1000 May 24  2002 Scheduled Visits.exe
-rwxr-xr-x 1 root root 15585 Sep 11  2002 cover page.jpg
-rwxr-xr-x 1 root root 20480 Apr 15  2002 jimmyj~1.doc
root@bt:/media/oldcaine#

file yg di delete muncul.masalahnya adalah , ketika saya coba cek dengan file

root@bt:/media/oldcaine# file /mnt/usb/jimmyj~1.doc
/mnt/usb/jimmyj~1.doc: ERROR: cannot read `/mnt/usb/jimmyj~1.doc' (Input/output error)
root@bt:/media/oldcaine#

masalahnya adalah saya belum menyusun ulang FAT clusternya belum di map dengan benar krn masih berisi deleted cluster

root@bt:/media/oldcaine# xxd -s 2048 usbkey.img | more
0000800: f8ff ffff 0000 0000 0000 0000 0000 0000  ................
0000810: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000820: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000830: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000840: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000850: 0000 0000 2b00 2c00 2d00 2e00 2f00 3000  ....+.,.-.../.0.

dari informasi sebelumnya kita tahu bahwa cluster dimulai dari cluster 2.setiap cluster berisi 16bit. yang artinya setelah awal DIR ROOT di 2048 dilanjut dg awal FAT cluster(melanjutkan 2) 0x0300,0x0400 seterusnya hingga berlanjut hingga byte offset 0x00854 yg berisi 2b00, dengan hex editor

0000800: f8ff ffff 0300 0400 0500 0600 0700 0800  ................
0000810: 0900 0a00 0b00 0c00 0d00 0e00 0f00 1000  ................
0000820: 1100 1200 1300 1400 1500 1600 1700 1800  ................
0000830: 1900 1a00 1b00 1c00 1d00 1e00 1f00 2000  .............. .
0000840: 2100 2200 2300 2400 2500 2600 2700 2800  !.".#.$.%.&amp;.'.(.
0000850: 2900 2a00 2b00 2c00 2d00 2e00 2f00 3000  ).*.+.,.-.../.0.
0000860: 3100 3200 3300 3400 3500 3600 3700 3800  1.2.3.4.5.6.7.8.
0000870: 3900 3a00 3b00 3c00 3d00 3e00 3f00 4000  9.:.;.&lt;.=.&gt;.?.@.
0000880: 4100 4200 4300 4400 4500 4600 4700 4800  A.B.C.D.E.F.G.H.
0000890: ffff 4a00 4b00 4c00 4d00 ffff 0000 0000  ..J.K.L.M.......

setelah disimpan. kembali saya mount usbkey.img nya

root@bt:/media/oldcaine# mount usbkey.img /mnt/usb/ -o ro,noatime,loop
root@bt:/media/oldcaine# ls -al /mnt/usb/
total 57
drwxrwxrwx 2 root root 16384 Jan  1  1970 .
drwxr-xr-x 3 root root  4096 May 10  2009 ..
-rwxr-xr-x 1 root root  1000 May 24  2002 Scheduled Visits.exe
-rwxr-xr-x 1 root root 15585 Sep 11  2002 cover page.jpg
-rwxr-xr-x 1 root root 20480 Apr 15  2002 jimmyj~1.doc
root@bt:/media/oldcaine# file /mnt/usb/jimmyj~1.doc
/mnt/usb/jimmyj~1.doc: Microsoft Office Document Microsoft Word Document
root@bt:/media/oldcaine#

dan skrg file telah teridentifikasi alias berhasil di recovery. dan untuk menguji apakah file berhasil direcover saya coba membacanya dengan perintah strings

root@bt:/media/oldcaine# strings /mnt/usb/jimmyj~1.doc | more
bjbj
Jimmy Jungle
626 Jungle Ave Apt 2
Jungle, NY 11111
Jimmy:
Dude, your pot must be the best
it made the cover of High Times Magazine! Thanks for sending me the Cover Page. What do you put in your soil when you plant the marijuana
seeds? At least I know your growing it and not some guy in Columbia.
These kids, they tell me marijuana isn
t addictive, but they don
t stop buying from me. Man, I
m sure glad you told me about targeting the high school students. You must have some experience. It
s like a guaranteed paycheck. Their parents give them money for lunch and they spend it on my stuff. I
m an entrepreneur. Am I only one you sell to? Maybe I can become distributor of the year!
I emailed you the schedule that I am using. I think it helps me cover myself and not be predictive.  Tell me what you think. To open it, us
e the same password that you sent me before with that file. Talk to you later.
Thanks,
Joe
urn:schemas-microsoft-com:office:smarttags
Street
urn:schemas-microsoft-com:office:smarttags
address
urn:schemas-microsoft-com:office:smarttags
City
urn:schemas-microsoft-com:office:smarttags
place
urn:schemas-microsoft-com:office:smarttags
State
urn:schemas-microsoft-com:office:smarttags
PostalCode
^{d&amp;
Jimmy Jungle
0000
Normal
0000tl
--more

data berhasil terbaca.

lanjut ke jpg

masih dalam posisi termount saya coba untuk mengecek file jpgnya

root@bt:/media/oldcaine# file /mnt/usb/cover\ page.jpg
/mnt/usb/cover page.jpg: ERROR: cannot read `/mnt/usb/cover page.jpg' (Input/output error)
root@bt:/media/oldcaine#

dari email yang saya terima, beliau mengatakan bahwa berhasil menggunakan jpg :

# blkcat usbkey.img 456 31 > coverpage.jpg

file memang dapat terekstrak, tp masalahnya susunan filesystemnya masih bermasalah,terutama di metadata sector. karena ketika image di mount masih ngga bs di baca apalagi di copy (kecuali pakai blkcat, itu pn metanya juga masih lom sempurna)

root@bt:/media/oldcaine# istat usbkey.img 8
Directory Entry: 8
Allocated
File Attributes: File, Archive
Size: 15585
Name: COVERP~1.JPG

Directory Entry Times:
Written:        Wed Sep 11 08:30:52 2002
Accessed:       Wed Sep 11 00:00:00 2002
Created:        Wed Sep 11 08:50:26 2002

Sectors:
834 &lt;-- hanya ada 1 sector? dg ukuran file 15585...
root@bt:/media/oldcaine#

masalahnya ada di FAT Dir entry.

0030060: 4267 0000 00ff ffff ffff ff0f 00f4 ffff  Bg..............
0030070: ffff ffff ffff ffff ffff 0000 ffff ffff  ................
0030080: 0163 006f 0076 0065 0072 000f 00f4 2000  .c.o.v.e.r.... .
0030090: 7000 6100 6700 6500 2e00 0000 6a00 7000  p.a.g.e.....j.p.
00300a0: 434f 5645 5250 7e31 4a50 4720 006d 4d46  COVERP~1JPG .mMF
00300b0: 2b2d 2b2d 0000 da43 2b2d a401 e13c 0000  +-+-...C+-...&lt;..

sama seperti kasus file doc, metadatanya masih dalam posisi ngaco.

dari info yang ada, FAT dimulai dari cluster 2, dan cluster 2 berada di sector 416. jadi jarak antara cluster dengan sector adalah 414. dan ketika kita komparasi cluster 420 ada di sector 834.

420 berasal dari offset 90 dari DIR ENTRY (ada dimanual filesystem FAT16), jika dilihat pada file jpg, sector ke 90 berada pada A4 01

00300b0: 2b2d 2b2d 0000 da43 2b2d a401 e13c 0000¬† +-+-…C+-…&lt;..

dan A4 01 jika di desimalkan menjadi 420. sedangkan istat memunculkan angka 834 pada starting sectornya. dan dari perhitungan diatas kelihatan jika selisihnya 414.

jika kembali ke informasi awal :

FAT CONTENTS (in sectors)
--------------------------------------------
456-486 (31) -&gt; EOF &lt;-------------sectornya 456
487-491 (5) -&gt; EOF
root@bt:/media/oldcaine

yang telah beliau gunakan : blkcat 456 31 &lt;–sector 456, berarti jika sectornya 456 akan berada di cluster 42. jika di convert ke hex 42 menjadi 0x2A. sekarang saya coba mengganti A401 dengan nilai hexa 2A dalam satuan 16bit 002A, karena nilai masih dalam bigendian maka saya ubah jadi little endian 2A00

0030060: 4267 0000 00ff ffff ffff ff0f 00f4 ffff  Bg..............
0030070: ffff ffff ffff ffff ffff 0000 ffff ffff  ................
0030080: 0163 006f 0076 0065 0072 000f 00f4 2000  .c.o.v.e.r.... .
0030090: 7000 6100 6700 6500 2e00 0000 6a00 7000  p.a.g.e.....j.p.
00300a0: 434f 5645 5250 7e31 4a50 4720 006d 4d46  COVERP~1JPG .mMF
00300b0: 2b2d 2b2d 0000 da43 2b2d 2a00 e13c 0000  +-+-...C+-*..&lt;..

skrg offset 90 berubah menjadi 2A00, saya akan coba mount lagi file image

root@bt:/media/oldcaine# mount usbkey.img /mnt/usb/ -o ro,noatime,loop
root@bt:/media/oldcaine# ls -al /mnt/usb/
total 57
drwxrwxrwx 2 root root 16384 Jan  1  1970 .
drwxr-xr-x 3 root root  4096 May 10  2009 ..
-rwxr-xr-x 1 root root  1000 May 24  2002 Scheduled Visits.exe
-rwxr-xr-x 1 root root 15585 Sep 11  2002 cover page.jpg
-rwxr-xr-x 1 root root 20480 Apr 15  2002 jimmyj~1.doc
root@bt:/media/oldcaine# file /mnt/usb/cover\ page.jpg
/mnt/usb/cover page.jpg: JPEG image data, JFIF standard 1.01
root@bt:/media/oldcaine#

</div>
<div style=”text-align: justify;”>sekarang file dikenali dan bs di copy. selanjutnya mengecek via istat

root@bt:/media/oldcaine# istat usbkey.img 8
Directory Entry: 8
Allocated
File Attributes: File, Archive
Size: 15585
Name: COVERP~1.JPGDirectory Entry Times:
Written:        Wed Sep 11 08:30:52 2002
Accessed:       Wed Sep 11 00:00:00 2002
Created:        Wed Sep 11 08:50:26 2002Sectors:
456 457 458 459 460 461 462 463
464 465 466 467 468 469 470 471
472 473 474 475 476 477 478 479
480 481 482 483 484 485 486
root@bt:/media/oldcaine#

yup sekarang file sudah normal.

selanjutnya file ke 3 yaitu Scheduled Visits.exe

saya mulai dengan fls lagi

root@bt:/media/oldcaine# fls usbkey.img
r/r 5:  JIMMYJ~1.DOC
r/r 8:  cover page.jpg
r/r 11: Scheduled Visits.exe
v/v 777411:     $MBR
v/v 777412:     $FAT1
v/v 777413:     $FAT2
d/d 777414:     $OrphanFiles
root@bt:/media/oldcaine#

dan kemudian mngecek metadata file

root@bt:/media/oldcaine# istat usbkey.img 11
Directory Entry: 11
Allocated
File Attributes: File, Archive
Size: 1000
Name: SCHEDU~1.EXE

Directory Entry Times:
Written:        Fri May 24 08:20:32 2002
Accessed:       Wed Sep 11 00:00:00 2002
Created:        Wed Sep 11 08:50:38 2002

Sectors:
487 488
root@bt:/media/oldcaine#

sector file terlihat sangat tidak normal. berikutnya saya akan coba tipe filenya.image saya mount dulu

root@bt:/media/oldcaine# file /mnt/usb/Scheduled\ Visits.exe
/mnt/usb/Scheduled Visits.exe: Zip archive data, at least v2.0 to extract
root@bt:/media/oldcaine#

ternyata file zip

saya coba copy ke drive local saya dan melakukan unzip

root@bt:/media/oldcaine# cp /mnt/usb/Scheduled\ Visits.exe .
root@bt:/media/oldcaine# unzip Scheduled\ Visits.exe
Archive:  Scheduled Visits.exe
End-of-central-directory signature not found.  Either this file is not
a zipfile, or it constitutes one disk of a multi-part archive.  In the
latter case the central directory and zipfile comment will be found on
the last disk(s) of this archive.
note:  Scheduled Visits.exe may be a plain executable, not an archive
unzip:  cannot find zipfile directory in one of Scheduled Visits.exe or
Scheduled Visits.exe.zip, and cannot find Scheduled Visits.exe.ZIP, period.
root@bt:/media/oldcaine#

ternyata error… berarti ada yang salah dengan file ini

sekarang saya mau coba dari mana istat mendapatkan nilai size dan sector diatas. seperti yang saya lakukan dg 2 file sebelumnya, saya coba untuk mengakses ke DIR ENTRY dari file

00300c0: 4269 0074 0073 002e 0065 000f 0055 7800  Bi.t.s...e...Ux.
00300d0: 6500 0000 ffff ffff ffff 0000 ffff ffff  e...............
00300e0: 0153 0063 0068 0065 0064 000f 0055 7500  .S.c.h.e.d...Uu.
00300f0: 6c00 6500 6400 2000 5600 0000 6900 7300  l.e.d. .V...i.s.
0030100: 5343 4845 4455 7e31 4558 4520 0053 5346  SCHEDU~1EXE .SSF
0030110: 2b2d 2b2d 0000 9042 b82c 4900 e803 0000  +-+-...B.,I.....

pada byte offset ke 90 terlihat bahwa nilai 16bit offset adalah 49 00 yang jika di ubah ke big endian menjadi 00 49, berikutnya di convert ke decimal menjadi 73 (dari 4×16^1 + 9×16^0)

karena selisih sector dan cluster adalah 414, maka sector dari file Sched.exe adalah 487, sesuai dg hasil dari istat. Berikutnya, besar file berasal dari offset 92 yaitu E8 03, yg diubah ke big endian menjadi 03 E8 yang jika di desimalkan menjadi 1000 ((3 x 16^2) + (E x 16^1) + (8 x 16^0) = (3 x 256) + (14 x 16) + 8 = 1000)

sekarang balik lagi ke hasil fstat, dimana dikatakan FAT dimulai dari sector 4, karena 1 sector nilainya 512 maka 512 x 4 = 2048, disinilah FAT berawal, pada byte offset 2048. jika dibuat tabel sederhana

offset      Sector     Cluster
2048         414         ---
2050         415         ---
2052         416         002

byte offset 2048 dan 2050 tidak memiliki cluster karena FAT memang dimulai dari cluster ke 2 (mmg dibuat spt ini oleh Microsoft, ada di wikipedia keterangn ttg FAT filesystem). sekaang saya coba untuk lihat FAT chainnya (krn filesystem FAT, cluster 1 berisi cluster berikutnya, dan cluster berikutnya berisi nilai dari cluster berikutnya..dst), skrg saya lakukan pembacaan di byte offset 2052.

root@bt:/media/oldcaine# xxd -s 2052 usbkey.img | more
0000804: 0300 0400 0500 0600 0700 0800 0900 0a00  ................
0000814: 0b00 0c00 0d00 0e00 0f00 1000 1100 1200  ................
0000824: 1300 1400 1500 1600 1700 1800 1900 1a00  ................
0000834: 1b00 1c00 1d00 1e00 1f00 2000 2100 2200  .......... .!.".
0000844: 2300 2400 2500 2600 2700 2800 2900 2a00  #.$.%.&amp;.'.(.).*.
0000854: 2b00 2c00 2d00 2e00 2f00 3000 3100 3200  +.,.-.../.0.1.2.
0000864: 3300 3400 3500 3600 3700 3800 3900 3a00  3.4.5.6.7.8.9.:.
0000874: 3b00 3c00 3d00 3e00 3f00 4000 4100 4200  ;.&lt;.=.&gt;.?.@.A.B.
0000884: 4300 4400 4500 4600 4700 4800 ffff 4a00  C.D.E.F.G.H...J.
0000894: 4b00 4c00 4d00 ffff 0000 0000 0000 0000  K.L.M...........

terlihat nilainya 03 00 yang jika di desimalkan menjadi 3. Nilai ini memberi tahu bahwa setelah cluster FAT dimulai dari cluster 2, selanjut chain akan ke cluster 3, di dalam cluster 3 berisi 04 00, yang bernilai 4, menandakan bahwa setelah cluster 3, cluster berikut adalah 4, dst Kembali ke cluster chain dari Sched.exe terlihat bahwa cluster dimulai dari cluster 73 yaitu 4A 00

0000884: 4300 4400 4500 4600 4700 4800 ffff 4a00  C.D.E.F.G.H...J.
0000894: 4b00 4c00 4d00 ffff 0000 0000 0000 0000  K.L.M...........

jika 16bit offset ini diubah menjadi desimal maka akan menghasilkan nilai 74. dari sini diketahui bahwa cluster berikutnya adalah 74. dan di dalam cluster 74 terdapat nilai 4B 00 yang jika di desimalkan menjadi 75, seterusnya hingga 4D 00 , pada cluster 77 file berakhir (dengan adanya FFFF, di FAT16 FFFF menandakan akhir file). Selanjutnya, untuk mengeluarkan file zip, saya akan mencoba men carving file, melalu clusternya yaitu dari 73 hingga 77 yang berarti dari sector 487 hingga 491 (1 file zip) menggunakan blkcat

root@bt:/media/oldcaine# blkcat usbkey.img 487 5 &gt; Sched.exe
root@bt:/media/oldcaine# file Sched.exe
Sched.exe: Zip archive data, at least v2.0 to extract
root@bt:/media/oldcaine#

selanjutnya saya akan mengunzip file dan kemudian menzip ulang file, untuk melihat ukuran zip file yang baru. Tujuannya untuk mengubah ukuran file yang sebenarnya dari file sched.exe yang berada di dalam image, sehingga ketika dilakukan mount, file akan dapat di copy atau dibaca dengan sempurna karena struktur FAT nya tidak lagi corrupt.

root@bt:/media/oldcaine# unzip Sched.exe
Archive:  Sched.exe
[Sched.exe] Scheduled Visits.xls password:
skipping: Scheduled Visits.xls    incorrect password
root@bt:/media/oldcaine#

ternyata file diproteksi dengan password. Biasanya, password disimpan di dalam flashdisk, saya coba untuk mencari kemungkinan itu dengan menggunakan perintah strings

root@bt:/media/oldcaine# strings usbkey.img | more
MSDOS5.0
NO NAME    FAT16   3
|8N$}$
|&amp;f;
r9&amp;8-t
at2Nt
NTLDR
Remove disks or other media.
Disk error
Press any key to restart
JIMMYJ~1DOC
... snip
pw=goodtimes
Scheduled Visits.xls
5kUM
... snip
g#6U
H@@     +U
Scheduled Visits.xlsPK
root@bt:/media/oldcaine#

terdapat string pw=goodtimes, saya coba mengekstraks file zip lagi dengan password tersebut

root@bt:/media/oldcaine# unzip Sched.exe
Archive:  Sched.exe
[Sched.exe] Scheduled Visits.xls password:
inflating: Scheduled Visits.xls
root@bt:/media/oldcaine#

berhasil.

sekarang saya akan coba zip ulang file tersebut dan melihat ukurannya.

root@bt:/media/oldcaine# zip Sched2.zip Scheduled\ Visits.xls
adding: Scheduled Visits.xls (deflated 87%)
root@bt:/media/oldcaine# file Sched2.zip
Sched2.zip: Zip archive data, at least v2.0 to extract
root@bt:/media/oldcaine# ls -al Sched2.zip
-rw-r--r-- 1 root root 2428 Nov 19 02:28 Sched2.zip
root@bt:/media/oldcaine#

baik sekarang ukuran file adalah 2428 berbeda dengan hasil istat yang hanya sebesar 1000. Selanjutnya saya akan mengubah ukuran yang ada di dalam file image dari 1000 menjadi 2428.Pertama saya ubah dahulu desimal 2428 menjadi hexa 097C. kemudian mengubahnya menjadi little endian 7c 09, pada offset byte ke 92 dari file saya ubah nilai E8 03 menjadi 7C 09

dari

0030100: 5343 4845 4455 7e31 4558 4520 0053 5346  SCHEDU~1EXE .SSF
0030110: 2b2d 2b2d 0000 9042 b82c 4900 e803 0000  +-+-...B.,I.....

menjadi

0030100: 5343 4845 4455 7e31 4558 4520 0053 5346  SCHEDU~1EXE .SSF
0030110: 2b2d 2b2d 0000 9042 b82c 4900 e803 0000  +-+-...B.,I.|...

kemudian saya mount ulang image yang ada

root@bt:/media/oldcaine# mount usbkey.img /mnt/usb/ -o ro,noatime,loop
root@bt:/media/oldcaine# cp /mnt/usb/
Scheduled Visits.exe  cover page.jpg        jimmyj~1.doc
root@bt:/media/oldcaine# cp /mnt/usb/Scheduled\ Visits.exe Sched_baru.exe
root@bt:/media/oldcaine# file Sched_baru.exe
Sched_baru.exe: Zip archive data, at least v2.0 to extract
root@bt:/media/oldcaine# ls -al Sched_baru.exe
-rwxr-xr-x 1 root root 2428 Nov 19 02:35 Sched_baru.exe
root@bt:/media/oldcaine# unzip Sched_baru.exe
Archive:  Sched_baru.exe
[Sched_baru.exe] Scheduled Visits.xls password:
replace Scheduled Visits.xls? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
inflating: Scheduled Visits.xls
root@bt:/media/oldcaine# file Scheduled\ Visits.xls
Scheduled Visits.xls: Microsoft Office Document
root@bt:/media/oldcaine#

Selesai. Jika anda tertarik untuk melakukan analisa, saya dapat mengirimkan file image tersebut, sebagai bahan latihan.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

About Spentera

We are specializing in penetration test, vulnerability assessment, computer forensics, as well as intrusion analyst and malware analysis. Customers can contact us directly at contact[at]spentera[dot]id, or use Contact Our Team menu on the sidebar.