Можно ли использовать скрипт или программу для принудительного чтения защищенного файла с диска? - PullRequest
0 голосов
/ 21 марта 2012

Некоторые файлы могут быть прочитаны только root-пользователями. Однако мне любопытно узнать, можно ли применить здесь теорию восстановления данных для принудительного чтения файла с диска. Можно ли сканировать байты файла, тем более что мы знаем, что файл существует? (В отличие от восстановления, где биты могут быть перезаписаны.)

Процесс, о котором я могу думать, следующий:

//Get the starting block location of the file

//Read it

// get the next block location

// read it

// iterate until done...

У меня здесь два вопроса. Возможно ли это, если данный файл доступен для чтения только пользователям с правами доступа выше, чем у вас? Даже если это так, как бы я реализовать это в коде?

Ответы [ 3 ]

2 голосов
/ 21 марта 2012

Что вы хотите также требует административного доступа. Если вы попытаетесь прочитать или записать файлы необработанных блочных устройств /dev/sd* или /dev/hd* в системах Linux, или их эквиваленты в других системах Unix, или использовать необработанные вызовы Windows API для чтения блочных устройств, вы неизменно обнаружите, что они требуют административные привилегии. (CAP_SYS_RAWIO в Linux.)

Кроме того, если в настоящий момент смонтировано блочное устройство, прочитанные вами данные, описывающие структуру файловой системы, могут измениться из-под вас, что делает этот подход невероятно ненадежным для подключенных дисков.

Если вы хотите продолжить это, я настоятельно рекомендую посмотреть на инструмент отладки debugfs(8) ext2, ext3, ext4. Он полностью реализует семейство файловых систем ext * в пользовательском пространстве и позволяет работать с блочными устройствами на необработанном уровне.

0 голосов
/ 21 марта 2012

Да, это возможно, если, например, системный администратор Unix безрассудно оставил блок или необработанные устройства для чтения недоверенными пользователями. Но смысл операционной системы заключается в посредничестве между пользователями / приложениями и системными ресурсами, такими как диски, поэтому вы не найдете много систем, настроенных для разрешения такого рода доступа по умолчанию. В случае систем Unix ключевые части информации не доступны для вас, если дисковые устройства в / dev не читаются. Вы не можете знать местоположение начального блока файла, например.

0 голосов
/ 21 марта 2012

Если вы можете получить жесткий диск, установите его как дополнительный жесткий диск. Таким образом, разрешения на уровне пользовательских файлов не будут проблемой, так как вы будете пользователем root / Administrator и сможете изменять файлы так, как вам нравится. Вы также можете создать криминалистические образы накопителя, используя dd (или другой инструмент), чтобы сделать немного для битовой копии, а затем смонтировать этот образ и прочитать / копировать / изучить файлы.

Нет способа сделать это в реальной операционной системе. Если бы вы могли читать файлы root, когда он вам этого не хотел, вы бы обнаружили серьезную уязвимость в операционной системе.

...