Debido a que el acceso al dispositivo subyacente está controlado solo por permisos de archivos de manera predeterminada, por lo que si su memoria USB contiene un sistema de archivos POSIX con un nodo de dispositivo de escritura mundial que corresponde a un dispositivo real en el sistema, puede usar ese nodo de dispositivo para acceder al correspondiente dispositivo como usuario "simple". Imagine un dispositivo correspondiente a uno de los dispositivos de audio, su cámara web /dev/sda
(que es un dispositivo de bloque en lugar de un dispositivo de caracteres, pero el argumento es el mismo) ...
Aquí hay un ejemplo para aclarar las cosas. Digamos que quiere acceder /dev/sda
(entonces puede hacer casi todo lo que quiera con el contenido del disco, incluyendo plantar un programa que le permita convertirse root
; este es un dispositivo de bloque pero el problema es el mismo con los dispositivos de caracteres). En su sistema de destino, ls -l /dev/sda
muestra
brw-rw---- 1 root disk 8, 0 Sep 8 11:25 sda
Esto significa que /dev/sda
es un dispositivo de bloque ( b
al principio de la línea), con el número mayor 8 y el número menor 0 ( 8, 0
el centro de la línea). Solo se puede acceder al dispositivo root
(lectura / escritura) y a los miembros del disk
grupo (también lectura / escritura).
Ahora imagine que en este sistema no puede convertirse, root
pero por alguna razón puede montar memorias USB como usuario sin él nodev
. En otro sistema, donde esté root
, puede crear un archivo especial correspondiente en su llave USB:
mknod -m 666 usersda b 8 0
Esto creará un archivo especial llamado usersda
, legible y editable por todos.
Monte la llave en su sistema de destino y, bueno, listo, puede usar el usersda
dispositivo de la misma manera que /dev/sda
, pero sin restricción de acceso ...
(Esto funcionará incluso con sistemas de archivos cifrados, siempre que pueda acceder al dispositivo mapeador descifrado: cree un dispositivo que coincida con la /dev/mapper
entrada correspondiente ).
ls -l /dev
, son los dos números que aparecen en lugar del tamaño del archivo. El núcleo hace coincidir un archivo especial del dispositivo con un controlador que utiliza esos números, por lo que puede tener varios archivos que apuntan al mismo controlador y dispositivo del núcleo. Los archivos especiales se crean usandomknod
./dev/tty*
dispositivos son dispositivos de caracteres, y un intruso que obtiene acceso completo de lectura / escritura a sus sesiones de terminal y / o la consola del sistema combinada con las característicasusersda
, pero al menos puede usarlo para leer desde el disco subyacente sin restricciones, y posiblemente también escribir en él. Puede copiar fácilmente todo el contenido del disco y con herramientas comodebuge2fs
sobrescribir,/etc/shadow
etc.