負暄閑語 —— 取證一二事

那日,我拾起散落一地的泛黃筆記,未曾想到會從一個塵封已久的盒子里翻出銹跡斑斑的硬盤。我只記得,當時,夕陽滿滿的打在臉頰上,而眼前的硬盤還在閃閃發光,似乎在述說著一個不可告人的秘密。

連上旁邊廢置的老舊電腦,硬盤轉動的聲音吱吱作響,終端的綠色光點在不急不慢的閃爍。然而,里面空無一物,什么都沒有。不對,我好像發現了什么......

Clue 1

那個硬盤并不是空無一物,至少我看到了一個名為.clue1的隱藏文件,好像是一個文本文件,打開一看,里面只有一行文字:

軟盤中,殘留著妳該尋找的下個條件

什么軟盤?就在我疑惑的片刻,我看到桌子右下角掉落著一個蓋滿厚厚灰塵的方形軟盤,應該就是它了。

緩緩的拾起它,吹落上面的積灰,插入破舊的電腦。聽到電腦讀取軟盤的茲茲聲,心里默默竊幸,看來還能用。

看這軟盤的古老程度,也許不能再被我們這樣折騰了,為了后面不直接對其操作,先創建一個鏡像備份吧:

root@toor:~# mkdir evid && cd evid
root@toor:~/evid # dd if=/dev/fd0 of=floppy.dd bs=512
root@toor:~/evid # chmod 444 floppy.dd

彈出軟盤后,記錄下鏡像的hash,便開始掛載咯(記得任何時候都要只讀模式掛載):

root@toor:~/evid # sha1sum floppy.dd > sha.floppy
root@toor:~/evid # mkdir /mnt/analysis
root@toor:~/evid # mount -t vfat -o ro,noexec,loop floppy.dd /mnt/analysis
root@toor:~/evid # cd /mnt/analysis
root@toor:/mnt/analysis #

當我ls出目錄下的文件的那一刻,心里咯噔一下,時間仿佛停滯在2000年,這么多年間,到底發生了什么?

root@toor:/mnt/analysis # ls -al
total 118
drwxr--r-- 4 root root 7168 Dec 31 1969 .
drwxr-xr-x 13 root root 4096 Dec 21 14:20 ..
drwxr--r-- 3 root root 512 Sep 23 2000 Docs
drwxr--r-- 2 root root 512 Sep 23 2000 Pics
-rwxr--r-- 1 root root 19536 Aug 24 1996 arp.exe
-rwxr--r-- 1 root root 37520 Aug 24 1996 ftp.exe
-r-xr--r-- 1 root root 16161 Sep 21 2000 loveletter.virus
-rwxr--r-- 1 root root 21271 Mar 19 2000 ouch.dat
-rwxr--r-- 1 root root 12384 Aug 2 2000 snoof.gz

樹形結構列出所有文件看看:

root@toor:/mnt/analysis # tree
|-- Docs
|    |-- Benchmarks.xls
|    |-- Computer_Build.xml
|    |-- Law.doc
|    |-- Private
|    `-- why hack
|-- Pics
|    |-- C800x600.jpg
|    |-- Stoppie.gif
|    |-- bike2.jpg
|    |-- bike3.jpg
|    |-- matrixs3.jpg
|    `-- mulewheelie.gif
|-- arp.exe
|-- ftp.exe
|-- loveletter.virus
|-- ouch.dat
`-- snoof.gz
3 directories, 15 files

里面好像沒有我感興趣的線索。

例行公事,先對每個文件進行hash并保存到sha.filelist文件中。

root@toor:/mnt/analysis # find . -type f -exec sha1sum {} \; > ~/evid/sha.filelist

以便以后檢查文件是否有改動:

root@toor:/mnt/analysis # sha1sum -c ~/evid/sha.filelist

當然,每個文件的文件類型信息也保存一份:

root@toor:/mnt/analysis # find . -type f -exec file {} \; > ~/evid/filetype.list

可惡,他把證據藏在了哪里?難道這里沒有嗎?不行,我要再仔細找找。

那就對整個鏡像來個搜索吧,先把下面的關鍵字保存到一個文件里。

$50,000
ransom
unleash a virus

喲,有了!

root@toor:~/evid # grep -abif searchlist.txt floppy.dd
75441:you and your entire business ransom.
75500:I have had enough of your mindless corporate piracy and will nolonger stand for it. You will receive another letter next week. Itwill have a single bank account number and bank name. I want you todeposit $50,000 in the account the day you receive the letter.
75767:Don't try anything, and don't contact the cops. If you do, Iwill unleash a virus that will bring down your whole network anddestroy your consumer's confidence.

再用xxd直接查看偏移75441處看16進制數據:

root@toor:~/evid # xxd -s 75441 floppy.dd | less
00126b1: 796f 7520 616e 6420 796f 7572 2065 6e74 you and your end
00126c1: 6972 6520 6275 7369 6e65 7373 2072 616e ire business ran
00126d1: 736f 6d2e 0a0a 5468 6973 2069 7320 6e6f som...This is no
00126e1: 7420 6120 6a6f 6b65 2e0a 0a49 2068 6176 t a joke...I hav
00126f1: 6520 6861 6420 656e 6f75 6768 206f 6620 e had enough of
0012701: 796f 7572 206d 696e 646c 6573 7320 636f your mindless co
0012711: 7270 6f72 6174 6520 7069 7261 6379 2061 rporate piracy a
0012721: 6e64 2077 696c 6c20 6e6f 206c 6f6e 6765 nd will no longe
0012731: 7220 7374 616e 6420 666f 7220 6974 2e20 r stand for it.
<continues>

雖然找到了證據,可是背后還是陣陣發冷。我抬頭,窗外的風吹不進來,四周一片寂靜,總感覺,事情沒有那么簡單......

Clue 2

順著剛才證據一路看下去,一直到偏移0x0012e1a處,第二條線索映入眼簾,果然,這里面還有問題!

圖片,將會邁向下一個開端

圖片?我翻遍掛載鏡像里面的所有的圖片,可是沒有一個是可疑的,難道,是我打開的方式不對?這時,一個名叫image_carve.raw的文件引起了我的注意。我的直覺告訴我,因該是這個錯不了。

root@toor:~# file image_carve.raw
image_carve.raw: data
root@toor:~# xxd image_carve.raw | less
0000000: 776a 176b 5fd3 9eae 247f 33b3 efbe 8d6a wj.k_...$.3....j
0000010: d3a9 daa0 8eef c199 102f 7eaa 0c68 a908 ........./~..h..
0000020: fca4 7e13 dc6b 17a9 e973 35a0 cfc3 9360 ..~..k...s5....`
0000030: f9c0 a6b9 1476 b268 de0f 94fa a2f4 4705 .....v.h......G.
0000040: 452d 7691 eb4f 2fa7 b31f 328b c07a ce3d E-v..O/...2..z.=
<continues>

奇怪,我只看到一堆雜亂隨機的字符數據,這看上去不像是圖片數據。

讓我再想想,我記得每種文件都有相應的magic number來標記其格式,而JPEG圖片文件則是以偏移JFIF六個字節的十六進制ffd8開始,ffd9結束。

這次,結合xxdgrep來搜搜試試看:

root@toor:~# xxd image_carve.raw | grep ffd8
00052a0: b4f1 559c ffd8 ffe0 0010 4a46 4946 0001 ..U.......JFIF..

咦,還真有,我感覺有戲!記下ffd8的位置0x00052a4,轉換成十進制為21156

root@toor:~# echo "ibase=16;00052A4" | bc
21156

然后在從偏移21156后面找ffd9

root@toor:~# xxd -s 21156 image_carve.raw | grep ffd9
0006c74: ffd9 d175 650b ce68 4543 0bf5 6705 a73c ...ue..hEC..g..<

因為圖片文件包含ffd9,所以結尾的地址0x0006c76。兩者相減,得到圖片大小:

root@toor:~# echo "ibase=16;0006C76 - 00052A4" | bc
6610

最后就是把圖片提取出來惹,這里用的是dd命令,skip為偏移,bs(block size)設置為1字節,然后count就是圖片的大小:

root@toor:~# dd if=image_carve.raw of=carv.jpg skip=21156 bs=1 count=6610
6610+0 records in
6610+0 records out
carv.jpg

Clue 3

不出意外的話,第三條線索就是這張圖片了,上面刻畫著一些奇怪的符號,不過我還是能辨認出一些金文,這是一種大篆體。

監聽,注視周圍發生的一切

我豎起耳朵,眼睛向四周掃視,沒有人,這里只有我一個。我開始感到疑惑,直到我看到了圖片右下角一行極小的字,這是什么!

root@able2: ~ # dd if=/dev/sda | nc 192.168.55.20 2525

192.168.55.20,這不是這臺電腦的ip嗎,難道說,還有另外一臺電腦正在向我傳送什么數據嗎?/dev/sda這不是硬盤數據嗎,到底是什么呢?不管怎么說,這里面肯定有我想要找的的答案,先保存下來看看。

root@toor: ~ # nc -l -p 2525 | dd of=~/able2/able2.dd

由于able2.dd是整個sda硬盤的鏡像,不能直接掛載,所以先看看其分區結構:

root@toor:~/able2 # sfdisk -l -uS able2.dd
Disk able2.dd: cannot get geometry
...<error messages>
Units = sectors of 512 bytes, counting from 0

Device Boot   Start   End    #sectors Id  System
able2.dd1     57      10259  10203    83  Linux
able2.dd2     10260   112859 102600   83  Linux
able2.dd3     112860  178694 65835    82  Linux swap / Solaris
able2.dd4     178695  675449 496755   83  Linux
able2.dd5     675450  676690 10240    83  Linux

五個分區,好吧,那就依次提取出來:

root@toor:~/able2 # dd if=able2.dd of=able2.part1.dd bs=512 skip=57 count=10203
10203+0 records in
10203+0 records out
root@toor:~/able2 # dd if=able2.dd of=able2.part2.dd bs=512 skip=10260 count=102600
102600+0 records in
102600+0 records out
root@toor:~/able2 # dd if=able2.dd of=able2.part3.dd bs=512 skip=112860 count=65835
65835+0 records in
65835+0 records out
root@toor:~/able2 # dd if=able2.dd of=able2.part4.dd bs=512 skip=178695 count=496755
496755+0 records in
496755+0 records out
root@toor:~/able2 # dd if=able2.dd of=able2.part5.dd bs=512 skip=675450 count=10240
10240+0 records in
10240+0 records out

接下來就是要根據這五個分區來還原文件系統了。我不厭其煩的開始依次掛載每個分區觀察其文件目錄結構:

root@toor:~/able2 # mount -t ext2 -o ro,loop able2.part1.dd /mnt/analysis/

我偷了個懶,當掛載able2.part2.dd的時候,直接查看fstab文件就知道了。

root@toor:~/able2 # cat /mnt/analysis/etc/fstab
/dev/hda2 /      ext2 defaults 1 1
/dev/hda1 /boot  ext2 defaults 1 2
/dev/hda4 /usr   ext2 defaults 1 2
/dev/hda5 /clue  ext2 defaults 1 2
/dev/hda3 swap   swap defaults 0 0

根據fstab掛載相應的分區到對應的路徑下:

root@toor:~/able2 # mount -t ext2 -o ro,loop able2.part2.dd /mnt/analysis/
root@toor:~/able2 # mount -t ext2 -o ro,loop able2.part1.dd /mnt/analysis/boot
root@toor:~/able2 # mount -t ext2 -o ro,loop able2.part4.dd /mnt/analysis/usr
root@toor:~/able2 # mount -t ext2 -o ro,loop able2.part5.dd /mnt/analysis/clue

clue分區已解鎖,我cd進去,我知道里面會有什么等著我,這就像是一場噩夢,可我還是必須直面,哪怕頭破血流。

Clue 4

沒有,什么都沒有,一片空白!

clue目錄下什么都沒有,連隱藏文件的氣味都沒有,就像虛無一樣完全看不到希望,怎么辦!

我的第六感告訴我,這里一定哪里不對勁。看來,是時候使用Sleuthkit了,最重要的是,這臺古老的電腦居然也安了Sleuthkit

先試了下mmls,這個命令跟之前的sfdisk的作用類似,也能給出鏡像的分區信息,只不過更加好用。

root@toor:~/able2 # mmls -t dos able2.dd
DOS Partition Table
Sector: 0
Units are in 512-byte sectors

    Slot  Start      End        Length     Description
00: ----- 0000000000 0000000000 0000000001 Primary Table (#0)
01: ----- 0000000001 0000000056 0000000056 Unallocated
02: 00:00 0000000057 0000010259 0000010203 Linux (0x83)
03: 00:01 0000010260 0000112859 0000102600 Linux (0x83)
04: 00:02 0000112860 0000178694 0000065835 Linux Swap / Solaris
05: 00:03 0000178695 0000675449 0000496755 Linux (0x83)

從之前就已經知道根目錄/文件系統在第二分區,從上面可知偏移為000010260,用fsstat查看詳細信息:

root@toor:~/able2 # fsstat -o 10260 able2.dd
FILE SYSTEM INFORMATION
--------------------------------------------
File System Type: Ext2
Volume Name:
Volume ID: 906e777080e09488d0116064da18c0c4

Last Written at: Sun Aug 10 14:50:03 2003
Last Checked at: Tue Feb 11 00:20:09 1997

Last Mounted at: Thu Feb 13 02:33:02 1997
Unmounted Improperly
Last mounted on:

Source OS: Linux
Dynamic Structure
InCompat Features: Filetype,
Read Only Compat Features: Sparse Super,

METADATA INFORMATION
--------------------------------------------
Inode Range: 1 - 12881
Root Directory: 2
Free Inodes: 5807

CONTENT INFORMATION
--------------------------------------------
Block Range: 0 - 51299
Block Size: 1024
Reserved Blocks Before Block Groups: 1
<continues>

別浪費時間了,快看看clue文件夾到底怎么了,我心里告訴自己。

事不宜遲,拿出利器flsfls可以列出文件系統上所有的文件和目錄:

root@toor:~/able2 # fls -o 10260 able2.dd
d/d 11: lost+found
d/d 3681: boot
d/d 7361: usr
d/d 3682: proc
d/d 7362: var
d/d 5521: tmp
d/d 7363: dev
d/d 9201: etc
d/d 1843: bin
d/d 1844: home
d/d 7368: lib
d/d 7369: met
d/d 7370: opt
d/d 1848: root
d/d 1849: sbin
d/d 8243: clue
r/r 1042: .bash_history
d/d 11105: .001
d/d 12881: $OrphanFiles

-d選項列出文件系統上所有被刪掉的文件(已刪除的文件會用*標記):

root@toor:~/able2 # fls -o 10260 -Frd able2.dd
r/r * 11120(realloc): var/lib/slocate/slocate.db.tmp
r/r * 10063: var/log/xferlog.5
r/r * 10063: var/lock/makewhatis.lock
r/r * 6613:  var/run/shutdown.pid
r/r * 1046:  var/tmp/rpm-tmp.64655
r/r * 6609(realloc):  var/catman/cat1/rdate.1.gz
r/r * 6613: var/catman/cat1/rdate.1.gz
r/r * 6616: tmp/logrot2V6Q1J
r/r * 2139: dev/ttYZ0/lrkn.tgz
d/r * 10071(realloc): dev/ttYZ0/lrk3
r/r * 6572(realloc):  etc/X11/fs/config-
l/r * 1041(realloc):  etc/rc.d/rc0.d/K83ypbind
l/r * 1042(realloc):  etc/rc.d/rc1.d/K83ypbind
l/r * 6583(realloc):  etc/rc.d/rc2.d/K83ypbind
l/r * 6584(realloc):  etc/rc.d/rc4.d/K83ypbind
l/r * 1044: etc/rc.d/rc5.d/K83ypbind
l/r * 6585(realloc):  etc/rc.d/rc6.d/K83ypbind
r/r * 1044: etc/rc.d/rc.firewall~
r/r * 6544(realloc):  etc/pam.d/passwd-
r/r * 10055(realloc): etc/mtab.tmp
r/r * 10047(realloc): etc/mtab~
r/- * 0:    etc/.inetd.conf.swx
r/r * 2138(realloc):  root/lolit_pics.tar.gz
r/r * 2139: clue/lrkn.tgz
r/r * 1055: $OrphanFiles/OrphanFile-1055
r/r * 1056: $OrphanFiles/OrphanFile-1056
r/r * 1057: $OrphanFiles/OrphanFile-1057
r/r * 2141: $OrphanFiles/OrphanFile-2141
r/r * 2142: $OrphanFiles/OrphanFile-2142
r/r * 2143: $OrphanFiles/OrphanFile-2143
<continues>

果然,clue文件下有一個被刪除的文件。不管是什么,看來,我得想辦法把它復原出來。

r/r * 2139: clue/lrkn.tgz

clue/lrkn.tgz的inode是2139,于是用istat查看的該inode的詳細信息:

root@toor:~/able2 # istat -o 10260 able2.dd 2139
inode: 2139
Not Allocated
Group: 1
Generation Id: 3534950564
uid / gid: 0 / 0
mode: rrw-r--r--
size: 3639016
num of links: 0

Inode Times:
Accessed:       Sun Aug 10 00:18:38 2003
File Modified:  Sun Aug 10 00:08:32 2003
Inode Modified: Sun Aug 10 00:29:58 2003
Deleted:        Sun Aug 10 00:29:58 2003

Direct Blocks:
22811 22812 22813 22814 22815 22816 22817 22818
22819 22820 22821 22822 22824 22825 22826 22827
<snip>...
32233 32234

接下來就是保存該inode指向的block數據,即被刪除的文件:

root@toor:~/able2 # icat -o 10260 able2.dd 2139 > lrkn.tgz.2139
root@toor:~/able2 # file lrkn.tgz.2139
lrkn.tgz.2139: gzip compressed data, was "lrkn.tar", from Unix

嗯,沒錯,是一個gzip的壓縮文件。

現在我已非常謹慎,這是種不好的預感。先不解壓,看看里面有什么:

root@toor:~/able2 # tar tzvf lrkn.tgz.2139 | less
drwxr-xr-x lp/lp    0 1998-10-01 18:48:18 lrk3/
-rwxr-xr-x lp/lp  742 1998-06-27 11:30:45 lrk3/1
-rw-r--r-- lp/lp  716 1996-11-02 16:38:43 lrk3/MCONFIG
-rw-r--r-- lp/lp 6833 1998-10-03 05:02:15 lrk3/Makefile
-rw-r--r-- lp/lp 6364 1996-12-27 22:01:43 lrk3/README
-rw-r--r-- lp/lp 1732 1995-11-10 23:59:59 lrk3/CLUE5
-rwxr-xr-x lp/lp   90 1998-06-27 12:53:45 lrk3/RUN
drwxr-xr-x lp/lp    0 1998-10-01 18:08:50 lrk3/bin/
<continues>

這是什么鬼,lrk3是一個非常古老的rootkit,我表示對rootkit完全不了解。可是,里面的CLUE5卻血腥的刺眼,又是一條可怕的提示,想想就讓人不禁寒顫。

root@toor:~/able2 # tar xzvfO lrkn.tgz.2139 lrk3/CLUE5 > CLUE5
lrk3/CLUE5

Clue 5

線索5的陳述依然是那么簡單有力讓人摸不著頭腦。

CYBERNETIK,找尋它身處何處

我默默的想,也許這是在提示我,找到含有關鍵字CYBERNETIK的文件所在。一想到這里,身體就不由自主的不受控制,開始在終端前機械的操作起來。

第一步對整個鏡像文件來個搜索:

root@toor:~/able2 # grep -abi CYBERNETIK able2.dd
10561603: * updated by Cybernetik for linux rootlet
55306929:Cybernetik proudly presents...
55312943:Email: cybernetik@nym.alias.net
55312975:Finger: cybernetik@nym.alias.net
root@toor:~/able2 # xxd -s 10561603 able2.dd | head -n 5
0a12843: 202a 0975 7064 6174 6564 2062 7920 4379 *.updated by Cy
0a12853: 6265 726e 6574 696b 2066 6f72 206c 696e bernetik for lin
0a12863: 7578 2072 6f6f 746b 6974 0a20 2a2f 0a0a ux rootkit. */..
0a12873: 2369 6e63 6c75 6465 203c 7379 732f 7479 #include <sys/ty
0a12883: 7065 732e 683e 0a23 696e 636c 7564 6520 pes.h>.#include

有這個關鍵字,一種不好的預感涌上心頭,我知道,接下來就是找到這個文件并把它提取出來。

根據上面的結果,關鍵字CYBERNETIK第一次出現在鏡像偏移10561603處,之前用fsstat知道了每個扇區的大小是512字節,所以可以計算出位于哪個扇區:

root@toor:~/able2 # echo "10561603/512" | bc
20628

之前用mmls得到該文件所在的分區起始于扇區10260

root@toor:~/able2 # mmls -t dos able2.dd
DOS Partition Table
Sector: 0
Units are in 512-byte sectors

    Slot  Start      End        Length     Description
00: ----- 0000000000 0000000000 0000000001 Primary Table (#0)
01: ----- 0000000001 0000000056 0000000056 Unallocated
02: 00:00 0000000057 0000010259 0000010203 Linux (0x83)
03: 00:01 0000010260 0000112859 0000102600 Linux (0x83)
04: 00:02 0000112860 0000178694 0000065835 Linux Swap / Solaris
05: 00:03 0000178695 0000675449 0000496755 Linux (0x83)

知道關鍵字在物理硬盤鏡像偏移并不能幫我們定位文件,所以兩者相減,就得到卷偏移:


通過fsstat知道了Block大小是1024字節,因此,可以計算出關鍵字位于哪個block:

總體來說,通過以上步驟我們得到了block偏移。


知道了位于哪個塊,我不由得舒了一口氣,我知道,接下來的就容易的很多了。先用ifind找到哪個inode指向的是數據塊5148:

root@toor:~/able2 # ifind -o 10260 -f ext -d 5184 able2.dd
10090

歐耶,乘勝追擊,直接將該inode指向的文件數據輸出出來:

root@toor:~/able2 # icat -r -o 10260 -f ext able2.dd 10090 | less
/*
 *  fixer.c
 *  by Idefix
 *  inspired on sum.c and SaintStat 2.0
 *  updated by Cybernetik for linux rootlet
 */
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/time.h>
#include <stdio.h>
#include <clue6.h>
/* 
  C.L.U.E.6:
  答案,遺失在交換數據流裡
 */

main (argc,argue)
int argh;
char **argv;
<continues>

回過頭來再看看,我怎么沒想到,不需要這么麻煩,還有更簡單的方法,只需用到blklsblkcalc就可以輕松得到block位置了。

Clue 6

相必已看到,第六條線索不出意料的就在剛才文件的注釋里:

答案,遺失在交換數據流裡

交換數據流,我想,應該指的是NTFS文件系統里的ADS特性。可當前的明明是EXT2文件系統,咦,不對,我好像看見了一個ntfs.dd的文件!難道是這個?也沒有其它辦法了,姑且一試吧。

二話不說先掛載,列出所有文件:

root@toor:~/ntfs_pract # mount -t ntfs -o ro,loop,offset=30208 ntfs.dd /mnt/analysis/
root@toor:~/ntfs_pract # cd /mnt/analysis/
root@toor:~/analysis # find . -type f
./Cookies/buckyball@as-eu.falkag[2].txt./Cookies/buckyball@2o7[1].txt
./Cookies/buckyball@ad.yieldmanager[1].txt
./Cookies/buckyball@specificclick[1].txt
./Cookies/buckyball@store.makezine[1].txt
./Cookies/buckyball@store.yahoo[2].txt
... [content removed]
./Favorites/2600 The Hacker Quarterly.url
... [content removed]
./My Documents/My Pictures/Tails/GemoTailG4.jpg
./My Documents/signatures.pdf
./My Documents/ULTIMATEJOURNEYDK.wmv
./My Documents/Webstuff/bandit2.jpg
./My Documents/Webstuff/m2_flat_CF.jpg
./My Documents/Webstuff/service1.jpg
./My Documents/Webstuff/Thumbs.db
./NTUSER.DAT
./SVstunts.avi

貌似沒有什么異常,可以我心里總覺得這個avi文件十分可疑,可能是男人的直覺吧。線索提示既然是ADS,那這回換個方式查看,直接看鏡像文件。

首先查看分區:

root@toor:~/ntfs_pract # mmls ntfs.dd
DOS Partition Table
Offset Sector: 0
Units are in 512-byte sectors

    Slot  Start      End        Length     Description
00: ----- 0000000000 0000000000 0000000001 Primary Table (#0)
01: ----- 0000000001 0000000058 0000000058 Unallocated
02: 00:00 0000000059 0001023059 0001023001 NTFS (0x07)
03: ----- 0001023060 0001023999 0000000940 Unallocated

得知NTFS分區的偏移是59,然后用fls列出所有文件:

root@toor:~/ntfs_pract # fls -Fr -o 59 -f ntfs ntfs.dd

r/r 4-128-4: $AttrDef
r/r 8-128-2: $BadClus
r/r 8-128-1: $BadClus:$Bad
r/r 6-128-1: $Bitmap
...
r/r 0-128-1: $MFT
r/r 1-128-1: $MFTMirr
r/r 9-128-8: $Secure:$SDS
...
r/r * 42-128-1: Cookies/buckyball@revsci[2].txt
r/r * 43-128-1: Cookies/buckyball@search.msn[1].txt
r/r * 44-128-1: Cookies/buckyball@slashdot[1].txt
...
r/r 128-128-3:   My Documents/My Pictures/Thumbs.db
r/r 128-128-4:   My Documents/My Pictures/Thumbs.db:encrypt able
r/r * 112-128-4: My Documents/My Pictures/bandit-streetortrack2005056.jpg
r/r * 116-128-4: My Documents/My Pictures/fighterama2005-ban4.jpg
r/r 129-128-4:   My Documents/Osuny Articles courtesy of BIOC Agent.doc
r/r 130-128-4:   My Documents/signatures.pdf
r/r 131-128-4:   My Documents/ULTIMATEJOURNEYDK.wmv
r/r 133-128-3:   My Documents/Webstuff/bandit2.jpg
r/r 134-128-4:   My Documents/Webstuff/m2_flat_CF.jpg
r/r 135-128-3:   My Documents/Webstuff/service1.jpg
r/r 136-128-3:   My Documents/Webstuff/Thumbs.db
r/r * 81-128-4:  My Documents/direct_attacks.doc
r/r 138-128-3: NTUSER.DAT
r/r 137-128-3: SVstunts.avi
r/r 137-128-4: SVstunts.avi:walkingdead.txt

可以看到,這個avi文件有兩個入口,第二個就是隱藏在ADS里的文本文件。

明明知道等待著我的會是什么,可我還是忍不住打開這個文件:

root@toor:~/ntfs_pract # icat -o 59 -f ntfs ntfs.dd 137-128-4

              ___           _,.---,---.,_
              |         ,;~'             '~;,
              |       ,;                     ;,
     Frontal  |      ;                         ; ,--- Supraorbital Foramen
      Bone    |     ,'                         /'
              |    ,;                        /' ;,
              |    ; ;      .           . <-'  ; |
              |__  | ;   ______       ______   ;<----- Coronal Suture
             ___   |  '/~"     ~" . "~     "~\'  |
             |     |  ~  ,-~~~^~, | ,~^~~~-,  ~  |
   Maxilla,  |      |   |        }:{        | <------ Orbit
  Nasal and  |      |   l       / | \       !   |
  Zygomatic  |      .~  (__,.--" .^. "--.,__)  ~.
    Bones    |      |    ----;' / | \ `;-<--------- Infraorbital Foramen
             |__     \__.       \/^\/       .__/
                ___   V| \                 / |V <--- Mastoid Process
                |      | |T~\___!___!___/~T| |
                |      | |`IIII_I_I_I_IIII'| |
       Mandible |      |  \,III I I I III,/  |
                |       \   `~~~~~~~~~~'    /
                |         \   .       . <-x---- Mental Foramen
                |__         \.    ^    ./
                              ^~~~^~~~^       -dcau (4/15/95)
> 
De profundis clamo ad te domine.
...
I see dead people.

De profundis clamo ad te domine,我疑惑地呢喃著。突然,眼前一黑,好像有什么硬物砸在了我的頭上,我重重的倒在地上。意識在漸漸失去,可我貌似看到了什么......

月光詭異的從窗外傾灑進來,我緩緩地睜開眼,頭疼的幾乎將要炸裂。電腦屏幕上的綠色字符冷冷的閃爍跳動,我吃力的站起來。不行,我要趕快刪掉這個文件,不能再被人發現它的存在,我知道它的可怕。

直接刪掉這個鏡像文件,我要抹去它的存在。幸好,我手上現在掌握著幾種這臺老式電腦上能用的刪除文件的法術。

rm -rf /
find / -type f -delete
rsync -a –delete empty/ /

我知道,不能用rmrm太危險,一旦被復原,后果不堪設想。find也一樣,至于rsync,這個不熟悉,我不能冒著這樣的風險。

直接格盤吧,不行,不能搞這么大的動靜,我只想靜靜的刪除文件。

dd if=/dev/zero of=/dev/hd*

shred,沒錯,我怎么沒想到這個,還有這個可以用。shred會用隨機內容覆蓋文件所在的節點和數據塊,并刪除文件,就是它了。

root@toor:~/ntfs_pract # shred -u ntfs.dd

fls檢查下,并沒有出現,至少,現在可以舒一口氣了。此時,烏云遮住了月亮,我知道,故事到這里就結束了。

本文為閱書有感而作,一本是來自LinuxLeo網站提供的Linux取證入門的書;一本是來自Brain Carrier的經典的File System Forensic Analysis;一本是CFTT項目測試各種取證工具并總結的取證工具handbook大全(2015版)。你可以在這里獲取這三本書。

其中示例及所用鏡像文件均來自書中,愿各位親自嘗試體驗其中的樂趣。
本人已整理打包,下載地址:http://pan.baidu.com/s/1ogLXW

成文倉促,文辭粗淺,僅資一娛,諸君見諒。
微信公共號:urinx,望關注。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,702評論 6 534
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,615評論 3 419
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,606評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,044評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,826評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,227評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,307評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,447評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,992評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,807評論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,001評論 1 370
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,550評論 5 361
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,243評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,667評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,930評論 1 287
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,709評論 3 393
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,996評論 2 374

推薦閱讀更多精彩內容

  • Ubuntu的發音 Ubuntu,源于非洲祖魯人和科薩人的語言,發作 oo-boon-too 的音。了解發音是有意...
    螢火蟲de夢閱讀 99,431評論 9 467
  • 轉載自:http://blog.csdn.net/hguisu/article/details/6122513原作...
    miaoiao閱讀 1,528評論 0 7
  • Linux系統一般有4個主要部分:內核、shell、文件系統和應用程序。 內核、shell和文件系統一起形成了基本...
    請愛護小動物閱讀 2,597評論 0 22
  • 我是一只黑白相間的貓,生活在時時刻刻都熙熙攘攘的城鎮里。你大可以叫我花貓,我會用明亮的眼神注視你,并溫柔的叫一聲“...
    童歆閱讀 428評論 0 0
  • “我晚上下面給你吃,”這是我朋友說的,我們剛游完泳,大家都很餓,坐在車上家了 到了家,我說:“我們該怎...
    常曜倬閱讀 268評論 0 0