Попаднах на тези статийки и реших да ги преведа. Оригинала е руски потребител на Дебиан - virens. Не съм пробвал описаните от него методи, но смятам в най-скоро време да го направя. И така :
______________________________________________________________________________________________________
Методи за дълбок анализ на данни или как да прегледаме файлове, които са скрити/защитени с пароли.
______________________________________________________________________________________________________
Метод 1:
foremost
Има ситуации като например: вашата флашка започва да умира, CD/DVD трудно се чете, а на него имате много важни данни или пък сте попаднали на друг тип проблем, когато искате да изкарате от даден носител информацията. В общ конспект въпроса е : Как да „изстържете” информацията от трудно достъпните носители?
Решение: има клас програми „съдебен анализ на данни” (forensic analisys), позволяващ тихомълком и без следи (и ректална имплантация на горещи поялници) да изведете данните, даже ако те са хитро записани.
Лирично отстъпление
Всичко започна с това, че при мен дойде потребител на Windows, гордо размахвайки флашка и твърдейки че има файл на MS Office Word с парола, който не мога да намеря на флашката. Поинтересувах се и когато вниманието му беше отвлечено от лаптопа Kororaa с XGL, тихомълком записах цялата гигабайтова флашка чрез dd... На следващия ден той много се удиви, виждайки в своята пощенска кутия, всичките свои пароли. По-долу разказвам, как ми отдаде това, използвайки Дебиан и неговите програми.
Какво има за това в Дебиан?
Какво ли не се намира в Дебианските хранилища! Например, много интересната програма foremost. Тя позволява да се търси файл на преносим носител/или вътре в образа създаден от dd. Може да се търси по hex-данни, характерни заглавия и окончания. В Дебиан Sarge версията е стара но от сайта на foremost можете да свалите архив и да го компилирате. След това foremost може да бъде стартиран и да се прочете ръководството, което трябва да изведе следното:
Foremost was written by Special Agent Kris Kendall and Special Agent Jesse
Kornblum of the United States Air Force Office of Special Investigations
starting in March 2001. This program would not be what it is today without
help from (in no particular order): Rob Meekins, Dan Kalil, and Chet
Maciag. This project was inspired by CarvThis, written by the Defense
Computer Forensic Lab in 1999.
Надявам се, че това не се нуждае от превод.
Как работи?
Програмата претърсва iso файла за съвпадения с предварително определени hex-кодове, съответстващи на най-разпространените файлови формати. След което ги извлича от диска/образа и ги записва в директория, заедно с подробен отчет за тях – какво е извадено и от къде.
Ръководството към програмата е написано много подробно с възможност за добавяне на свои формати, за които програмата не е конфигурирана. Заглавията и окончанията се кодират преди използването от шестнадесетичния:
Headers and footers are decoded before use. To specify a value in
hexadecimal use x[0-f][0-f], and for octal use [1-9][1-9][1-9]. Spaces
can be represented by s. Example: "x4F123IsCCI" decodes to "OSI CCI".
А ето и пример за това как изглежда за foremost файла:
# extension case-sens max-size header footer (option)
#
# GIF and JPG files (very common)
gif y 155000 x47x49x46x38x37x61 x00x3b
gif y 155000 x47x49x46x38x39x61 x00x00x3b
jpg y 200000 xffxd8xff xffxd9
Така, че може да се добави информация за търсене на шифровани файлове и други навеждащи на размишление данни.
Foremost в действие
След като програмата е инсталирана и носителя е рипнат с помощта на dd, остава да потърсим файловете.
Да опитаме да търсим файлове замаскирани под друг формат.
Вземаме флашката, забучваме я, но не я монтираме - пробваме да извлечем от нея файл с тип doc, един от които е преименуван в jpg (наивен юноша...), чрез командата:
./foremost -t doc -o /opt/foremost-1.3/output/ -i /dev/sdf
След което отиваме в директория ../output и наблюдаваме радостна картина – файла се появява. А ето и отчет на програмата:
Foremost version 1.3 by Jesse Kornblum, Kris Kendall, and Nick Mikus
Audit File
Foremost started at Sat Dec 16 21:48:07 2006
Invocation: ./foremost -t doc -o /opt/foremost-1.3/output/ -i /dev/sdf
Output directory: /opt/foremost-1.3/output
Configuration file: /opt/foremost-1.3/foremost.conf
------------------------------------------------------------------
File: /dev/sdf
Start: Sat Dec 16 21:48:07 2006
Length: 15 MB (16121856 bytes)
Num (bs=512) Size Offset
0: 129.jpg 155 KB 66048
Finish: Sat Dec 16 21:48:12 2006
1 FILES EXTRACTED
doc:= 1
------------------------------------------------------------------
Името не се е съхранило, но съдържанието е тук. Нагретия поялник и ютията оставяме настрана. :-)
Друг пример. Нека хакера Нео иска да предаде на другаря си Морфеус диск с изображение кода на матрицата(фотография на голата Тринити). За това може да се изхитри да запише чрез cdrecord не iso-образа, а просто файл:
cdrecord -v speed=0 dev=ATAPI:0,0,0 matrixcodes
На други край Морфеус прави:
dd if=/dev/cdrom bs=2048 of=~/temp/matrix.jpg
Но ето идва агент Смит, награбва Нео и ласкаво го пита, какво има на диска. Хакера Нео с ясни очи говори истината естествено – нищо, диска е празен(работата е ясна този диск не се чете). Агент Смит обаче е ГНУ/Линукс хакер и знае набира в конзолката:
# foremost -t all -o ~/output/ -i /dev/hda
И рипва от диска страшните данни: в директорията ..output/ се явява файл audit.txt със следното съдържание:
Foremost version 1.3 by Jesse Kornblum, Kris Kendall, and Nick Mikus
Audit File
Foremost started at Sat Dec 16 22:15:26 2006
Invocation: ./foremost -t all -o /opt/foremost-1.3/output/ -i /dev/hda
Output directory: /opt/foremost-1.3/output
Configuration file: /opt/foremost-1.3/foremost.conf
------------------------------------------------------------------
File: /dev/hda
Start: Sat Dec 16 22:15:26 2006
Length: 604 KB (618496 bytes)
Num (bs=512) Size Offset
0: 0.jpg 88 KB 0
Finish: Sat Dec 16 22:15:28 2006
1 FILES EXTRACTED
jpg:= 1
------------------------------------------------------------------
Foremost finished at Sat Dec 16 22:15:28 2006
И поддиректория ..output/jpg/ с този файл...
Ситуацията може да се усложни: да се допише този файл в края на диска, след записването на други файлове, или да го запише като архив, има къде да се мечтае по въпроса.
Ако още си поиграете с програмата, може да се каже, че програмата без допълнителни работи може да намери графични файлове от типа tif, jpg, png, bmp, звукови файлове wav, изпълними exe-файлове за Windows, всички офисни формати (мелкоОфис и ОпънОфис), архиви rar и zip и много други. ГНУ/Линукс архиви от типа bzip2 и p7zip. От CD/DVD програмата не може да изважда информация, но за целта може да се използват други програми.
Заключение
Чрез прост пример показахме моща на програмата foremost, която в умели ръце и при познание за простите UNIX-програми от типа на dd или recoverdm е способна да извлече информация, даже принудително хитро записана в нестандартни файлове.
Аналогични програми
Такива програми не се афишират особено много, и трудно се раздават просто така. Ако трябва даже е необходимо да се оставят паспортни данни и да се доказва че работите в полицията или в КГБ ☺. Но въпреки всичко ги има. Това са Safeback, Encase, safecopy, dvdisaster и някои други. Особено параноични лаици, предполагат че стария dd също се явява такава програма.
Връзки
Има много добър каталог с описание на тези програми тук. Ето и нелошо описание на достъпните инструменти по анализ на данни, връзки има и тук, а още по добре е да попитате Google за forensic.
______________________________________________________________________________________________________
Метод 2:
The Sleuth Kit
Продължавам темата за програмния анализ на данни, като в тази статия идва реч за инструменти за съдебен анализ (forensic analys) The Sleuth Kit. В дистрибутива Debian този инструмент не влиза, но това не пречи да се изтегли ядрото от сайта на проекта и да се компилира самостоятелно.
Инсталация
За да използвате 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
Това значи, че споменатите библиотеки трябва да се инсталират.
Търсене и намиране на данни
След инсталацията, на ваше разположение ще се намират почти 30 инструмента, способни да дадат изчерпателна информация за това какво е записано на даден носител. Подразбира се, че тези програми прекрасно работят с 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))
Така изпълняваме mml за 1.img за да разберем разположението и типа на дяловете:
$ 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
8
Резултата се явява като смесен файл, който е необходим за извличането. Въпреки това в нашите ръце е всичката информация за файловете – остава да ги извлечем. Да погледнем, например файла cdpocket.pdf, за извличането на който използваме инструмента icat:
$ icat -f fat -i raw -o 0000000032 1.img 8 > cdpocket.pdf
В текущата директория след изпълнението на тази команда се появява файл cdpocket.pdf – четящ се и разглеждащ се със съответната програма.
Заключение
Комплекта The Sleuth Kit дава на потребителя на *nix-системи огромни възможности по възстановяване на повредените или скрити данни, и в приведения по-горе пример се осъществява чрез няколко малки програмки. Повече информация за съдебен анализ на данни може да се намери в прекрасните документации идващи с инструмента и на сайта на авторите.
22.03.2007 21:44
2. Сайта на Йордан Георгиев много ми помага този човек с моите мъки покрай изучаването на GNU/Linux
3. Пак на Йордан но този път блог.
4. Gatta Negra помага ми при преводите на английски.
5. Ми то пише линукс за българи!!!
6. Моето решение срещу Windows администратори
7. Всичко за мен!
8. Блога ми е оценен на
9. Моята визитна картичка