Рубрики
HDD \ SSD \ ISO \ CD-ROM \ LVM \ FS \ RAID \ Диск

Восстановление данных \ The Sleuth Kit

Описание:

http://lin.in.ua/articles/25-Vosstanovlenie_dannyx/177-Vostanovlenie_ydalennyx_fajlov_v_Linux.html
Речь пойдёт о семействе утилит судебного анализа The Sleuth Kit, 
которые поддерживают следующие файловые системы: NTFS, FAT, UFS 1, UFS 2, EXT2, EXT3, EXT4 и ISO 9660;

Установка:

Для того, чтобы начать использовать The Sleuth Kit, 
требуется распаковать тарбол в любую директорию и просто набрать в ней make. 
Для сборки программы нужны библиотеки SSL, которые нужно предварительно поставить, 
как и говорилось в файле README. 

В дистрибутив они входят:
# apt-cache search libssl
libssl-dev - SSL development libraries, header files and documentation
libssl0.9.6 - SSL shared libraries (old version)
libssl0.9.7 - SSL shared libraries
dcmtk - The OFFIS DICOM toolkit command line utilities
libdcmtk0 - The OFFIS DICOM toolkit runtime libraries
libdcmtk0-dev - The OFFIS DICOM toolkit development libraries and headers
Так что это потребует около 7Мб дискового пространства. 

Если нам его не жалко, ставим:
# apt-get install libssl0.9.7 libssl-dev
После того, как всё настроится и установится, можно приступать к сборке:
# make
В результате должно всё собраться, а утилиты появятся в подкаталоге ../bin, который до сборки был пуст.
После сборки там появится много утилит, часть которых будет описываться далее.
 
Если у вас библиотека ssl не установлены, при компиляции вы получите ошибку такого вида:
checking for initscr in -lncurses... yes
checking for uncompress in -lz... yes
checking for ssl3_new in -lssl... no
configure: error: OpenSSL developer library 'libssl' not installed; cannot continue.
make[1]: Entering directory `/home/penta4/temp/1/src/afflib/lib'
make[1]: *** Не заданы цели и не найден make-файл. Останов.
make[1]: Leaving directory `/home/penta4/temp/1/src/afflib/lib'
Error: Missing lib/libafflib.a file
make: *** [no-perl] Ошибка 1
Это значит, что упомянутые выше библиотеки у вас не установлены и вам их нужно поставить.

Ищем и находим данные:

После установки в вашем распоряжении окажется почти три десятка утилит, 
способных дать исчерпывающую информацию и том, что и как записано на носителе. 
Разумеется, утилиты прекрасно работают с raw-данными, полученными dd или recoverdm, о которой уже было написано.
Следует отметить, что если программа foremost предназначена скорее для экспресс-анализа 
и представляет собой утилиту вида "всё в одном флаконе", 
то The Sleuth Kit это набор утилит для более глубокого исследования данных. 
Но это лучше показать на примере, в котором используется версия 2.07.
 
Пример:
Пусть имеется образ флешки в файле 1.img, и на ней есть данные, которые нужно извлечь без монтирования. 
Для этого сначала смотрим, какие структуры данных вообще присутствуют на диске 
- это делает утилита mmls - media management lister.
Она показывает разметку диски, в том числе пустые области (unallocated spaces), 
а так же адреса начала и окончания партиций.

Поддерживаются следующие типы партиций:
dos (DOS-based partitions [Windows, Linux, etc.])
mac (MAC partitions)
bsd (BSD Disklabels [FreeBSD, OpenBSD, NetBSD])
sun (Sun Volume Table of Contents (Solaris))
gpt (GUID Partition Table (EFI))
Так, применяем mmls для того, чтобы узнать, какое расположение и тип партиций:
$ mmls 1.img
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 0000000031 0000000031 Unallocated
02: 00:00 0000000032 0000031359 0000031328 DOS FAT12 (0x01)
03: ----- 0000031360 0000031487 0000000128 Unallocated
Всё верно, досовская файловая система на флешке (выделение полужирным - моё). 
Теперь известно, откуда она начинается и где заканчивается 
- эта информация нужна для работы других утилит.
 
Отлично, теперь мы знаем тип файловой системы и где она располагается. 
Посмотрим, как много данных на ней есть и что мы может оттуда выдрать 
- в этом деле нам поможет другая утилита, fsstat. 

Вызываем её, сообщая сведения, полученные от mmls:
penta4@penta4rce:~/temp$ fsstat -f fat -o 0000000032 1.img
FILE SYSTEM INFORMATION
--------------------------------------------
File System Type: FAT12
OEM Name: +/J8LIHC
Volume ID: 0x913
Volume Label (Boot Sector): SANVOL 
Volume Label (Root Directory):
File System Type Label: FAT12 
Sectors before file system: 32
File System Layout (in sectors)
Total Range: 0 - 31327
* Reserved: 0 - 0
** Boot Sector: 0
* FAT 0: 1 - 12
* FAT 1: 13 - 24
* Data Area: 25 - 31327
** Root Directory: 25 - 56
** Cluster Area: 57 - 31320
** Non-clustered: 31321 - 31327
METADATA INFORMATION
--------------------------------------------
Range: 2 - 500226
Root Directory: 2
CONTENT INFORMATION
--------------------------------------------
Sector Size: 512
Cluster Size: 4096
Total Cluster Range: 2 - 3909
FAT CONTENTS (in sectors)
--------------------------------------------
57-64 (8) -> EOF
65-80 (16) -> EOF
81-88 (8) -> EOF
89-96 (8) -> EOF
97-408 (312) -> EOF
409-688 (280) -> EOF
689-696 (8) -> EOF
697-1000 (304) -> EOF

Отлично, теперь мы знаем, сколько файлов записано и где они расположены:

Самое время посмотреть на структуру каталогов и файлов, начиная с корневого каталога. 
Для этого воспользуемся утилитой fls, которая показывает не только записанные, но и удалённые файлы. 
Посмотрим, что есть в корневом каталоге:
$ fls -f fat -o 0000000032 1.img
d/d 3: DCIM
d/d 4: SCENE
r/r * 6: raw1.bz2
r/r 8: cdpocket.pdf
r/r 10: raw1
 
Чудесно, знаем не только имена файлов, но и их смещения, которые нам потребуются, чтобы прочесть файлы. 
Звёздочка означает, что файл удалён: но его можно попробовать восстановить, 
если после удаления не проводилось интенсивного пере записывания файлов.
Если файлов много, или они в каталогах, и требуется найти смещение файла, 
имя которого известно, следует воспользоваться утилитой ifind.
 
$ ifind -a -n cdpocket.pdf -f fat -i raw -o 0000000032 1.img
Результатом является смещение файла, которое требуется для его извлечения.

Всё, в наших руках вся информация о файлах - осталось их извлечь. 
Посмотрим, например, на файл cdpocket.pdf, для извлечения которого используем утилиту icat:
$ icat -f fat -i raw -o 0000000032 1.img 8 > cdpocket.pdf
 
В текущем каталоге после выполнения этой команды появляется файл cdpocket.pdf 
- читается и просматривается соответствующей программой.

Заключение:

Комплект утилит The Sleuth Kit даёт пользователям *nix-систем огромные возможности по восстановлению повреждённых или скрытых данных, 
и в приведённом выше примере освещается лишь некоторые программы. 
Больше информации о судебном анализе данных можно найти в прекрасных мануалах, идущих с утилитами, и на сайте авторов.