Поскольку доступ к базовому устройству по умолчанию контролируется только правами доступа к файлам, поэтому, если ваш USB-накопитель содержит файловую систему POSIX с доступным для записи узлом устройства, соответствующим реальному устройству в системе, вы можете использовать этот узел устройства для доступа к соответствующему устройство как «простой» пользователь. Представьте себе устройство, соответствующее одному из аудиоустройств, вашей веб-камере /dev/sda
(которое является блочным устройством, а не символьным устройством, но аргумент тот же) ...
Вот пример, чтобы прояснить ситуацию. Скажем, вы хотите получить доступ /dev/sda
(тогда вы можете делать с содержимым диска все, что захотите, включая установку программы, которая позволит вам стать root
; это блочное устройство, но проблема та же с символьными устройствами). В вашей целевой системе ls -l /dev/sda
показывает
brw-rw---- 1 root disk 8, 0 Sep 8 11:25 sda
Это означает, /dev/sda
что это блочное устройство ( b
в начале строки), с большим номером 8 и вторым номером 0 ( 8, 0
в середине строки). Устройство доступно только root
(чтение / запись) и членам disk
группы (также чтение / запись).
Теперь представьте, что в этой системе вы не можете стать, root
но по какой-то причине вы можете подключить USB-флешки как пользователь без nodev
. В другой системе, где вы находитесь root
, вы можете создать соответствующий специальный файл на вашем USB-ключе:
mknod -m 666 usersda b 8 0
Это создаст специальный файл usersda
, который будет доступен для чтения и записи для всех.
Смонтируйте ключ на вашей целевой системе, и вы можете использовать usersda
устройство так же, как /dev/sda
и без ограничений доступа ...
(Это будет работать даже с зашифрованными файловыми системами, если вы можете получить доступ к расшифрованному устройству картографа: создайте устройство, соответствующее соответствующей /dev/mapper
записи.)
ls -l /dev
, это два числа, которые появляются вместо размера файла. Ядро сопоставляет специальный файл устройства с драйвером, используя эти числа, поэтому вы можете иметь несколько файлов, которые указывают на один и тот же драйвер ядра и устройство. Специальные файлы создаются с использованиемmknod
./dev/tty*
устройства являются символьными устройствами, и злоумышленник, получивший полный доступ на чтение / запись к сеансам вашего терминала и / или системной консоли в сочетании со злоупотреблением функциями эмулятора терминала, может разрешить все виды неприятных уловок ...usersda
, но вы можете по крайней мере использовать его для чтения с основного диска без ограничений и, возможно, для записи на него. Вы можете легко скопировать все содержимое диска, а также с помощью таких инструментов, какdebuge2fs
перезапись/etc/shadow
и т. Д.