2013年3月9日土曜日

Codegate 2013 Forensics 100 Writeup

問題文は与えられたファイルから従業員が不正に取得したと思われるファイルの特定、ファイルサイズ、オンラインストレージへのアップロード時間と変更時間を下記の形式で答えなさいというもの(記憶が若干曖昧)

Upload date&time(UTC+9:00)_Modified date&time(UTC+9:00)_Filename.extention_Filesize(logicalfilesize)

与えられたファイルは次のファイル。

8fb4cb1c2b32ed533f4fbdb6582501b5

まずこのファイルのバイナリを確認すると、7z\xbc\xaf\x27\x1cとなっているので7zファイルだとわかる。

forensics100# hexdump -C 8fb4cb1c2b32ed533f4fbdb6582501b5 | more
00000000  37 7a bc af 27 1c 00 03  43 f7 b4 28 09 8d 58 03  |7z..'...C..(..X.|
00000010  00 00 00 00 5e 00 00 00  00 00 00 00 49 74 ca 12  |....^.......It..|
00000020  00 19 b0 0d cd 06 0e 84  a1 eb fe fa 17 92 f1 cb  |................|
00000030  92 da c0 4b c7 a1 01 39  0e 67 78 13 b7 0c 93 a7  |...K...9.gx.....|
00000040  5a c9 ec 2b 85 e1 96 1f  7b e3 ce bf 81 e1 7e 0c  |Z..+....{.....~.|
00000050  34 d1 fa 45 a6 c1 a1 32  69 85 7b 39 8f bb 15 33  |4..E...2i.{9...3|
00000060  2d 39 84 3f 32 ca 4c 4d  15 1c a1 ea a2 76 fa 5c  |-9.?2.LM.....v.\|
00000070  09 0e 9f fa 00 33 c8 60  1c 97 c2 0a 97 15 28 2d  |.....3.`......(-|
00000080  cc 34 8d 4d 73 3a d2 44  c5 45 86 38 ee 80 e5 09  |.4.Ms:.D.E.8....|
00000090  21 8f 33 1e b9 1e 8f df  43 eb 09 c7 5d c6 bb bb  |!.3.....C...]...|

ファイルを 7zip で展開すると evidence.001 というファイルができる。
file コマンドで evidence.001 の内容を確認してみる。

forensics100# file evidence.001 
evidence.001: x86 boot sector; partition 1: 
ID=0x7, starthead 2, startsector 128, 198656 sectors, 
code offset 0xc0, OEM-ID "      м", 
Bytes/sector 190, 
sectors/cluster 124, reserved sectors 191, FATs 6, root entries 185, 
sectors 64514 (volumes <=32 MB) , Media descriptor 0xf3, 
sectors/FAT 20644, heads 6, hidden sectors 309755, 
sectors 2147991229 (volumes > 32 MB) , 
physical drive 0x7e, dos < 4.0 BootSector (0x0)


ディスクイメージのようなので mmls コマンドでパーティションレイアウト情報を確認する。

forensics100# mmls evidence.001 
DOS Partition Table
Offset Sector: 0
Units are in 512-byte sectors

     Slot    Start        End          Length       Description
00:  Meta    0000000000   0000000000   0000000001   Primary Table (#0)
01:  -----   0000000000   0000000127   0000000128   Unallocated
02:  00:00   0000000128   0000198783   0000198656   NTFS (0x07)
03:  -----   0000198784   0000204799   0000006016   Unallocated

パーティションの2番目が調査すべきファイルのようなので、パーティションマウントして中身を確認する。

forensics100# mount -o loop,offset=65536 -t ntfs evidence.001 evidence

マウントしたパーティションが何なのかがわからないので、まずはファイルの一覧を眺めてみる。

forensics100# ls -lhR evidence/ | more
evidence/:
total 32K
drwxrwxrwx 1 root root    0 2013-02-16 12:44 17FCA978-3FF4-4FAD-A6CB-C346EAA816A2
drwxrwxrwx 1 root root 4.0K 2013-02-16 12:44 3BF5888C-B2FE-4E31-9FC2-480DEA405331
drwxrwxrwx 1 root root 4.0K 2013-02-16 12:44 3E068DCB-B90B-43DC-B1A9-D083B5BBABE7
drwxrwxrwx 1 root root 4.0K 2013-02-16 12:44 53C38695-70F0-42A0-9C59-34606A7802A8
drwxrwxrwx 1 root root 4.0K 2013-02-16 12:48 5BB3AF5D-01CC-45D9-947D-977DB30DD439
drwxrwxrwx 1 root root    0 2013-02-16 12:44 6BCC19E4-31A9-4381-AABA-88069F3A763F
drwxrwxrwx 1 root root 4.0K 2013-02-16 12:44 6F667589-637A-45E3-92AC-E421C00FF657
drwxrwxrwx 1 root root 4.0K 2013-02-16 12:48 7C0D5811-A2CC-4E45-A0D1-2600B299C54D
drwxrwxrwx 1 root root 4.0K 2013-02-16 12:48 7C10A720-1D64-4B77-AB4E-136AA429EBFF
drwxrwxrwx 1 root root 4.0K 2013-02-16 12:44 9A0ABEAF-D4E5-4BA6-8E8D-6FEB1D685B74
drwxrwxrwx 1 root root    0 2013-02-16 12:46 $RECYCLE.BIN

-- snip --

evidence/3E068DCB-B90B-43DC-B1A9-D083B5BBABE7/CNN-iPhone.app/SC_Info:
total 32K
-rwxrwxrwx 1 root root 1.1K 2012-12-27 13:27 CNN-iPhone.sinf
-rwxrwxrwx 1 root root  26K 2012-11-15 18:43 CNN-iPhone.supp

evidence/3E068DCB-B90B-43DC-B1A9-D083B5BBABE7/CNN-iPhone.app/SVProgressHUD.bundle:
total 9.0K
-rwxrwxrwx 1 root root 739 2012-11-06 12:58 error@2x.png
-rwxrwxrwx 1 root root 371 2012-11-06 12:58 error.png

-- snip --
evidence/5BB3AF5D-01CC-45D9-947D-977DB30DD439/Library/Caches:
total 61K
-rwxrwxrwx 1 root root 520 2012-12-27 18:32 analytics.log
-rwxrwxrwx 1 root root 20K 2012-12-27 17:58 asset_hashes.db
-rwxrwxrwx 1 root root 40K 2012-12-27 17:59 cache.db
drwxrwxrwx 1 root root   0 2012-12-27 18:50 CachedFiles
drwxrwxrwx 1 root root   0 2013-02-16 12:48 com.getdropbox.Dropbox
drwxrwxrwx 1 root root   0 2013-02-16 12:48 Dropbox
drwxrwxrwx 1 root root   0 2012-12-27 18:50 LogPool
drwxrwxrwx 1 root root   0 2013-02-16 12:48 Snapshots
drwxrwxrwx 1 root root   0 2012-12-27 18:50 Three20


ファイル名に iPhone などが出てくるため iPhone のファイルと仮定。また Dropbox というファイルもあったため、問題文にあるオンラインストレージは Dropbox とあたりをつけ、該当ファイルがある 5BB3AF5D-01CC-45D9-947D-977DB30DD439 を中心に作業を進める。

ファイルの一覧を眺めていると、下記のフォルダが見つかる。
./Documents:
total 64K
-rwxrwxrwx 1 root root 24K 2012-12-27 17:58 AlbumAssetsDB.sqlite
-rwxrwxrwx 1 root root 20K 2012-12-27 17:59 Dropbox.sqlite
drwxrwxrwx 1 root root   0 2012-12-27 18:48 Uploads
-rwxrwxrwx 1 root root 20K 2012-12-27 17:57 Uploads.sqlite

Dropbox.sqlite が Dropbox の何かのデータベースっぽいので SQLite Database Browser で中身を確認する。

Dropbox.sqlite

6行目で S-companysecurity.pdf とありこれが対象ファイルと判断。この情報でサイズや modifi 時間があるがアップロード時間がわからない。運営側から「base64」とのヒントがあり、手当たり次第 .sqlite や cache.db を確認していくと ./Library/Caches/cache.db を SQLite Database Browser で表示すると下記のような情報があるのがわかった。


この部分を切り出して base64 デコードしてから hexdump で確認する。

forensics100/base64# tr -d '\r\n' < base64.txt > base64 
forensics100/base64# base64 -d base64 > base64.dec
forensics100/base64# hexdump -C base64.dec 
00000000  62 70 6c 69 73 74 30 30  d4 01 02 03 04 05 08 b8  |bplist00........|
00000010  b9 54 24 74 6f 70 58 24  6f 62 6a 65 63 74 73 58  |.T$topX$objectsX|
00000020  24 76 65 72 73 69 6f 6e  59 24 61 72 63 68 69 76  |$versionY$archiv|
00000030  65 72 d1 06 07 54 72 6f  6f 74 80 01 af 10 21 09  |er...Troot....!.|

マジックナンバーに bplist00 とある。これは mac などで使われる xml ファイルらしい。そこで cache.db の中身をすべてデコードして、plist editer で中身を確認する。


S-Companysecurity.pdf という名前の前後に NS.time と 2.1MB という文字がある。NS.time については後ろのほうにもあるが、他のファイルを眺める限り前にある NS.time がファイルに関する該当時間のようであり、かつ NS.time の 378291354 は Dropbox.sqlite の MODIFIEDDATE とも一致する。
この時間を指定された時間形式に変換する。

forensics100/base64# date -d "1970-1-1 GMT +378291354 second"
Sun Dec 27 17:55:54 JST 1981
forensics100/base64# date -d "1970-1-1 GMT +357554798 second"
Fri May  1 17:46:38 JST 1981

Unix だと 1970-1-1 が基準時間だが mac などは 2001-1-1 が基準時間になる。そのため上記時間に31年を足した下記が答え。
2012-12-27 17:55:54_2012-05-01 17:46:38_S-Companysecurity.pdf_2.1MB

0 件のコメント:

コメントを投稿