The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Восстановление спрятанных или потерянных данных (disk repair fs forensic flash)


<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>
Ключевые слова: disk, repair, fs, forensic, flash,  (найти похожие документы)
From: Михаил Конник <http://mydebianblog.blogspot.com>; Date: Sun, 16 Feb 2008 17:02:14 +0000 (UTC) Subject: Восстановление спрятанных или потерянных данных Оригинал: http://mydebianblog.blogspot.com/2007/01/1-foremost.html http://mydebianblog.blogspot.com/2007/01/2-sleuth-kit.html Глубокий анализ данных, Эпизод 1: foremost Есть ситуации: ваша флешка начинает помирать, диск плохо читается и на нём важные данные, или вы пришли к какому-нибудь недругу и подозреваете, что у него на винчестере есть данные, которые вам нужны, а он их показывать не хочет. В общем, вопрос: как выдрать файлы из труднодоступных носителей? Решение: имеется класс программ "судебного анализа данных" (forensic analisys), позволяющих без шума и пыли (и ректальной имплантации горячих паяльников) выудить данные, даже если они хитро записаны. Лирическое отступление Всё началось с того, что ко мне пришёл один пользователь виндовс, и, гордо размахивая флешкой, сказал, что у него есть вордовский файл с паролями, но на этой флешке его никто никогда не отыщет. Мне стало интересно, и я, отвлекая его внимание запущенным на ноутбуке Kororaa с XGL, по-тихому перегнал всю гиговую флешку к себе с помощью dd... На следующий день он очень удивился, увидев в своём почтовом ящике все свои пароли. Ниже рассказывается, как мне это удалось сделать, используя Дебиан и программы, имеющиеся в нём. Что есть для этого в Дебиан? Чего только не найдёшь в Дебиановском репозитории! Например, очень и очень интересная программа foremost. Она позволяет искать файлы на сменных носителях / внутри образов дисков по hex-данным, характерным заголовкам и окончаниям. В Sarge версия довольно старая, но с сайта можно скачать тарболл и скомпилировать его. После чего 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. Выделенные курсивом строки, надеюсь, в переводе не нуждаются? Как это работает? Программа прочёсывает файлы на предмет совпадения заранее определённых 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: "\x4F\123\I\sCCI" decodes to "OSI CCI". А вот и пример того, как выглядят для foremost файлы: # extension case-sens max-size header footer (option) # # GIF and JPG files (very common) gif y 155000 \x47\x49\x46\x38\x37\x61 \x00\x3b gif y 155000 \x47\x49\x46\x38\x39\x61 \x00\x00\x3b jpg y 200000 \xff\xd8\xff \xff\xd9 Так что если есть желание и необходимость, можно добавить информацию для поиска шифрованный файлов и прочих наводящих на размышления данных. 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/ с этим файлом... Ситуацию можно усложнить: дописать в конец диска этот файл тем же способом, после записи липовых файлов, или записать так архив - в общем, есть где фантазии развернуться. Ещё немного поигравшись с программой, можно сказать следующее. Сразу, без дополнительных танцев, находит foremost графические файлы tif, jpg, png, bmp, звуковые файлы wav, виндовые exe-шники, все офисные форматы (мелкоОфиса и ОпенОфиса), архивы rar и zip и многое другое. Линуксовые архивы типа bzip2 и p7zip "в лоб" программа не берёт, но это дело не сильно облегчает, так как, задавшись целью, можно и их выдрать с диска. Заключение На простых примерах была показана мощь программы foremost, которая в умелых руках и при знании простых UNIX-программ типа dd или recoverdm способна выуживать из носителей информации данные, даже весьма хитро спрятанные и записанные нестандартным образом. Аналогичные программы Такие программы особенно не афишируются, и крайне неохотно раздаются за просто так. Или надо оставлять свои паспортные данные и доказывать, что вы работаете в полиции, в суде или в КГБ :-) Но всё-таки кое-что имеется. Это проприетарные Safeback, Encase, safecopy, dvdisaster и некоторые другие. Особые параноики полагают, что старый-добрый dd тоже является программой из этой же серии. Глубокий анализ данных, Эпизод 2: The Sleuth Kit Продолжая тему о программах анализа данных, в этом посте пойдёт речь о семействе утилит судебного анализа (forensic analys) The Sleuth Kit. В дистрибутив Debian оно пока не входит (в Sarge v3.1r1 во всяком случае), но это не мешает скачать сырцы с сайта проекта и собрать самостоятельно. Установка Для того, чтобы начать использовать 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: Entering directory `/home/penta4/temp/1/src/afflib/lib' make: *** Не заданы цели и не найден make-файл. Останов. make: 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 8 Результатом является смещение файла, которое требуется для его извлечения. Всё, в наших руках вся информация о файлах - осталось их извлечь. Посмотрим, например, на файл cdpocket.pdf, для извлечения которого используем утилиту icat: $ icat -f fat -i raw -o 0000000032 1.img 8 > cdpocket.pdf В текущем каталоге после выполнения этой команды появляется файл cdpocket.pdf - читается и просматривается соответствующей программой. Заключение Комплект утилит The Sleuth Kit даёт пользователям *nix-систем огромные возможности по восстановлению повреждённых или скрытых данных, и в приведённом выше примере освещается лишь некоторые программы. Больше информации о судебном анализе данных можно найти в прекрасных мануалах, идущих с утилитами, и на сайте авторов.

  • << Предыдущая ИНДЕКС Исправить src / Печать Следующая >>

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру